[go: up one dir, main page]

WO2007110545A2 - Method and system for controlling access to the data in a database - Google Patents

Method and system for controlling access to the data in a database Download PDF

Info

Publication number
WO2007110545A2
WO2007110545A2 PCT/FR2007/051016 FR2007051016W WO2007110545A2 WO 2007110545 A2 WO2007110545 A2 WO 2007110545A2 FR 2007051016 W FR2007051016 W FR 2007051016W WO 2007110545 A2 WO2007110545 A2 WO 2007110545A2
Authority
WO
WIPO (PCT)
Prior art keywords
server
processing
program
entity
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/FR2007/051016
Other languages
French (fr)
Other versions
WO2007110545A3 (en
Inventor
Thierry Bouron
Gilles Antoine
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
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 France Telecom SA filed Critical France Telecom SA
Publication of WO2007110545A2 publication Critical patent/WO2007110545A2/en
Publication of WO2007110545A3 publication Critical patent/WO2007110545A3/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs

Definitions

  • the invention relates to a method and a system for processing data of a database, enabling access control to the data of the database.
  • the rules defining the access rights to the data of an information system give rights to read and / or write to given entities (companies, users, etc.). based on permission levels and profiles associated with these levels. This results in a strong limitation of the access possibilities to the data of the information system, an entity having access only to the part of the data for which it has a right to read or write.
  • the subject of the invention is a data processing system comprising a mediation server between a first entity called a client entity and a second entity called a provider entity.
  • said server comprising program execution means for executing, on request from the client entity, a program implementing a predefined process of processing, said program being able to trigger, during the execution of said process, a transmission through a communication link of at least one activation request of at least one processing module of a server of the provider entity in order to execute at least one processing operation on at least a part of the data at least one database accessible via the server of the supplier entity, the system comprising control means designed for, in case of authentication of said program, determining whether said program is authorized to activate said processing module and for , in the absence of authorization, inhibit the execution of said at least one processing operation.
  • the device makes it possible to authorize access to data from a database in a context limited to a predefined processing process, which is that implemented by the authorized processing program, and to control the execution of the process when activating the processing modules.
  • the device thus makes it possible to offer an entity selective visibility of the data of a database.
  • Authorization to access data in the database is granted for a given use, that is, for the execution of a given processing process. Only this process is considered for determining access authorization and not just the nature of the data. In this way, only the use of the data is important, not the data used.
  • the system according to the invention comprises means of authentication of said program, said control means being intended to be activated only in case of authentication.
  • the security of the system is enhanced by the fact that only a previously authenticated program is likely to be allowed to invoke a processing module.
  • the mediation server comprises software generation means capable of generating said program from a description in formal language of said process, said description being defined by reference to at least one module selected from a plurality of processor modules of the provider entity server that can be activated independently of one another.
  • the formal description allows, by reference to the processing modules, to define the processing operations on the entities, as well as the data on which these operations will be performed and the data resulting therefrom. It determines how two entities will be able to exchange data resulting from processing or access to data in their databases.
  • the device is thus easily adaptable to changing needs of the entities interrogating the information system, by changing the description of the process and automatic generation of the software module implementing the described process.
  • the system comprises means for detecting an occurrence of at least one predefined event, an occurrence to which the execution of said process is subordinated.
  • the program is preferably reset after each execution, in order to enter the detection phase determining the next execution.
  • the processing module implementing the processing operation is chosen from among a plurality of processing modules that can be activated independently of one another.
  • autonomous software modules which can be activated independently of one another, it is thus possible to define, operation by operation or group of operations by group of operations, the access conditions to the data of the database.
  • the mediation server comprises means for verifying whether an entity is authorized to invoke the execution of said program.
  • the mediation server plays the role of trusted third party between the client entity and the provider entity.
  • the entire process of cooperation between these two entities is controlled at the level of the mediation server, in particular through the use of an authenticatable program, resulting from a description validated by the cooperating entities.
  • the mediation server acts as a mediator in that the execution of the cooperation process requires the intervention of the mediation server, and in that, on the one hand, it receives the requests from the client entity, on the other hand activates, by request sent to the server of the provider entity, the different processing modules allowing access to the data of a base of the supplier entity.
  • the invention also relates to a mediation server between a client entity and a provider entity, said mediation server comprising program execution means for executing, on request from the client entity, a program implementing a predefined process of processing, said program being able to trigger, during the execution of said process, a transmission through a communication link of at least one activation request of at least one processing module of the server of the provider entity to perform at least one processing operation on at least a portion of the data of at least one database of data accessible via the server of the supplier entity, said mediation server including control means designed for, in case of authentication of said program, determining whether said program is authorized to activate said processing module and for, in case of absence of authorization, inhibiting the execution of said at least one processing operation.
  • the invention also relates to a data processing server accessing at least one database, said processing server being able to communicate through a communication link with a mediation server between a client entity and a provider entity, said processing server comprising at least one processing module, designed to execute at least one processing operation on at least a part of said data of said database and activatable by request from the mediation server by means of a program setting implementing a predefined processing process, said processing server comprising control means for, following the transmission by said program of a request for activation of a processing module, checking whether said program is authorized to activate said processing module and for, in the absence of authorization, inhibit the execution of said at least one processing operation.
  • the invention relates to a data processing method included in at least one database, said method comprising at least,
  • a step of execution by a mediation server of a program implementing a predefined process of processing said execution step being intended to be executed following the reception by the mediation server of a request coming from a 'a client entity
  • a step of triggering by said program during the execution of said process, of remission through a communication link of at least one activation request of at least one processing module of the processing server in order to execute at least one processing operation on at least a part of said data
  • control step for determining whether the program causing the activation request is authorized to activate said processing module
  • a step of triggering the execution of said at least one processing operation said triggering step being executed only in the case of authorization.
  • This method preferably comprises a step of authenticating the program at the origin of the activation request, said checking step being executed only in case of authentication.
  • FIG. 1 is a schematic representation of a system incorporating the device according to the invention
  • FIG. 2 is an exemplary process description implemented by the device according to the invention.
  • FIG. 3 is a simplified flowchart of the method according to the invention.
  • Entity E1 is a supplier of basic components for the manufacture of manufactured products.
  • Entity E2 is a client of the entity E1 and obtains components from the entity E1.
  • the E2 entity manufactures manufactured products and distributes the manufactured products it produces.
  • the system represented in FIG. 1 comprises:
  • a server 10 representing the information system 10 of the entity E 1, accessing the database 5,
  • a server 20 representing the information system 20 of the entity E2, accessing the database 25,
  • a server 15 implementing the device according to the invention and able to communicate with the server 10 via a communication network R1 and with the server 20 via a communication network R2, the two networks R1 and R2 can be merged.
  • the server 10 comprises a software module 12 for managing the database 5 as well as a software module 11 dedicated to an activity of the entity E1, for example a production control software.
  • the server 20 includes a software module 22 for managing the database 25 and a software module 21 dedicated to an activity of the entity E2, for example product ordering software.
  • the database 5 are stored in particular information on the quantities of components available in the stocks of the entity E1.
  • the database 25 are stored in particular information on the quantities of components and manufactured products available in its inventory and information on the quantities of products ordered from the entity E2.
  • the server 15 shown in FIG. 1 comprises program execution means as well as a set of software modules WA1 to WA6, WL1 to WL3, and WO.
  • the information system 10 implements the software modules WS1 to WS3, and symmetrically, the information system 20 implements the software modules WS4 to WS6.
  • These different software modules cooperate and communicate with each other by means of MW, MW1, MW2 middleware which is implemented in a distributed manner between the server 15 (part MW of the middleware), the information system 10 (part MW1 of the middleware) and information system 20 (part MW2 of the middleware).
  • the software modules WA1, WA2, WA3 are data access modules of the information system 10, implementing an interface enabling the server 15 to interrogate the information system 10 and its database 5.
  • Each of the modules WA1, WA2, WA3 is in fact an interface of the API (Application Program Interface) type with respect to the respective software modules WS1, WS2, WS3 implemented in the information system 10.
  • the modules WS1, WS2, WS3 access the database 5 via the database management module 12. In addition, they implement one or more processing functions on the data to which they access.
  • the software modules WA4, WA5, WA6 are data access modules of the information system 20, implementing an interface enabling the server 15 to interrogate the information system 20 and its database. 25.
  • Each of the modules WA4, WA5, WA6 is in fact an interface of the API (Application Program Interface) type with respect to the respective software modules WS4, WS5, WS6 implemented in the information system 20.
  • the modules WS4, WS5, WS6 access the database 25 via the database management module 22. In addition, they implement one or more processing functions on the data to which they access.
  • the software module WO is a control module implementing an automated data processing process, a process corresponding in a manner for the entities E1 and E2 to cooperate through their information systems.
  • the server 15 is capable of simultaneously executing several such software modules WO ', WO ", etc. However, for the sake of clarity, a single software module WO has been represented in FIG.
  • the software modules WL1, WL2, WL3 are basic data processing modules that can be invoked by the WO module, available for example via a library of processing software components.
  • the various aforementioned software modules WO, WA1 to WA6, WS1 to WS6, WLO to WL3, are autonomous software components that can be activated independently of one another. They are preferably made in the form of components that can be invoked via a communication network such as the Internet, for example Web services (or "Web Service” according to the Anglo-Saxon name). A description and detailed specification of such components can be found on the website http://www.w3.org. These components can be invoked by Hypertext Transfer Protocol (HTTP) -compliant requests.
  • HTTP Hypertext Transfer Protocol
  • the middleware MW, MW1, MW2 is implemented using a communication protocol suitable for communication between such components, for example the Simple Object Access Protocol (SOAP). Such a protocol allows the sending of SOAP messages between the components.
  • SOAP Simple Object Access Protocol
  • the middleware preferably includes security functions, allowing the implementation of authentication and access control procedures during communications between the components, in particular during the invocation of a component.
  • the SOAP messages that can be transported by the HTTP protocol, the various aforementioned software modules WO, WA1 to WA6, WS1 to WS6, WLO to WL3 that are executed by the server 15 or by one of the information systems 10 or 20, are susceptible be invoked by SOAP message from any terminal or system having software having a web access interface (eg a web browser) and accessing via the network R1 or R2 to the server 15 or one of the information systems 10 or 20.
  • a web access interface eg a web browser
  • the information system 20 of the entity E2 transmits to the server 15 requests or messages for the execution of predefined operations on the data of the information system 10 of the entity E1. These operations can be mathematical, logic or simple queries of the data of the information system 10 of the entity E1. Conversely, the information system 10 of the entity E1 can transmit to the server 15 requests or messages for the execution of predefined operations on the data of the information system 20 of the entity E2.
  • FIG. 1 shows that the system is bidirectional insofar as the server 15 can be used simultaneously, on the one hand for the execution of a process when the entity E1 sends the server a request to the server 15 to access data from the information system of the entity E2, and secondly, for the execution of a process when the entity E2 sends the server a request to the server 15 to access data from the information system of the entity. the entity E1.
  • the conditions according to which the entity E2 is authorized to access the data of the information system 10 of the entity E1 (or vice versa) are formalized by means of a description of a processing process.
  • Such a process describes the cooperation arrangements between the information systems of the entities E1 and E2, that is to say the way in which the server automatically processes the requests it receives from one of the communication systems. 'information.
  • Such a process includes:
  • control operations necessary to control the execution of the process including condition verification operations or operations waiting for a particular event such as: receiving an email, a document, an SMS, a phone call, etc.
  • condition verification operations or operations waiting for a particular event such as: receiving an email, a document, an SMS, a phone call, etc.
  • the conditions to check during the process are for example:
  • condition checking operations are performed before or after execution of a processing operation. The same is true for other waiting operations.
  • a waiting operation of a predefined event can be executed at the beginning of the process, in order to condition the start of the execution of the process by the occurrence of this event.
  • the process includes for example:
  • a second operation 02 for determining the number of products to be ordered from other suppliers this second operation being executed consecutively to the first operation when two conditions are fulfilled, the first condition being that the number of products in the stocks of the entity E1 is below a given threshold, the second condition being that the number of products in the stocks of the entity E1 determined during the first operation 01 does not make it possible to respond to all the orders received by the entity E2.
  • the formal description of this process is performed using a formal language appropriate for the process description, for example the Business Process Management Notation (BPMN).
  • BPMN Business Process Management Notation
  • An editing tool capable of editing a BPMN description is used to generate the description and thus formalize the process.
  • Such a language makes it possible to define the manner of executing and linking the processing operations implemented by the components provided by the library, to define the data flows, to define new processing operations.
  • FIG. 2 An example of such a graphic description is shown in Figure 2, in the case of an example of an elementary inventory process of short-term and medium-term stocks of products used under certain conditions in a procurement process.
  • the round with thin line designates the initial state of the process.
  • Rectangles with rounded edges designate operations performed by a web service.
  • the other processing operations are represented by rectangles.
  • the test operations are represented by diamonds.
  • a processing step S210 corresponding to the determination, by querying the database of the entity E2, of the number X of components of a given type T that are available in the stocks of the entity E2;
  • a processing step S215 corresponding to the determination, by interrogation of the database of the entity E2, of the number Y of manufactured products incorporating the component of the type T that are to be produced by the entity E2;
  • step S225 of verifying a condition in which it is checked whether the quantity Z of components calculated in step S220 is non-zero; if yes, the process continues in step S230, otherwise in step S260;
  • a step S230 of processing corresponding to the determination, by querying the database 5 of the entity E1, of the number Z1 of components of the type T that are available in the stocks of the entity E1;
  • step S240 of checking a condition, in which it is checked whether the quantity Z1 is greater than a threshold; if so, the process continues in step S250, otherwise in step S260;
  • a step S260 corresponding to the end of the process and the release of the software and hardware resources used by the process.
  • the initial step S200 optionally comprises an operation for verifying a predefined condition or for detecting the occurrence of at least one predefined event.
  • This operation conditions the execution of the following steps S210 to S260.
  • This event is for example the reception of a request or a message from a given entity, for example from the entity E2 or E1, or from any other entity, the receipt of a document, the receiving an SMS, receiving a phone call, the occurrence of a given date or time, etc.
  • the BPMN description of the PROC process is interpreted by an automatic generation engine capable of generating source code in BPEL4WS (Business Process Execution Language for Web Service) language that allows generating Web service components and invoking services.
  • BPEL4WS Business Process Execution Language for Web Service
  • Existing web Such tools are well known to experts in the field of process management. With this type of tools, a process can be defined from predefined standard components or templates, especially as a particular cooperation and scheduling of these typical components. Web services components WS1 to WS6 are then used during the implementation of the process, each web service corresponding to an instantiation of a template used to define the process.
  • the execution by the WO component of the process PROC of FIG. 2 uses, in the example described here, the components WA3 to WA5, WS3 to WS5 and WL1 to WL3.
  • Each of the software modules WL1 to WL3 is able to implement one or more predefined basic processing operations.
  • the step S220 (respectively S225, S240) is implemented by the software module WL1 (respectively WL2, WL3).
  • the software modules WL1 to WL3 can themselves be derived from an automatic generation from a description in formal language.
  • Step S210 of the PROC process described in FIG. 2 is implemented by the software module WS4 in cooperation with the module WA4, constituting the server-side API 15 of the software module WS4.
  • the step S215 (respectively S230) of the process PROC described in FIG. 2 is implemented by the software module WS5 (respectively WS3) in cooperation with the module WA5 (respectively WA3), constituting the server-side API 15 of the WS5 software module (respectively WS3).
  • the software modules WS1 to WS6 can themselves be derived from an automatic generation from a description in formal language.
  • the process PROC is itself implemented by a component of the Web services type, which in the example described is the software module WO.
  • An interface in Web Service Description Language (WSDL) makes it possible to invoke the execution of the PROC process in the same way as that of another Web service.
  • the PROC process implemented by the software module WO thus corresponds to the process describing the cooperation modalities between the information systems of the entities E1 and E2.
  • one or more software components can automatically be generated capable of implementing the process defined by this formal description.
  • the entities E1 and E2 concerned by the cooperation process generate and validate the description of the process.
  • the server 15 preferably comprises means for editing, validating and recording the description of the process.
  • the editing and validation of the process is performed from a terminal in communication link with the server 15.
  • the server 15 comprises means for verifying whether an entity is authorized to edit or validate said description.
  • the identification and / or authentication data of the entity concerned are transmitted to the server 15 which identifies and / or authenticates the entity before giving it access to the validated description.
  • the validated description is encrypted and / or digitally signed, so that it can not be modified without the consent of the entities that have approved it or only by an authorized entity.
  • the server 15 verifies the signature of said description before proceeding to the generation of software components able to implement the process defined by this formal description.
  • the server 15 thus plays the role of third party mediation and trust. It is the repository of the validated description and implements the process as validated. Furthermore, as described in more detail below, it comprises control and security means ensuring that access to the data of one of the information systems 10 or 20 is done exclusively via the components corresponding to the process such that valid. In this way, access by another entity to information in an entity's information system is permitted only within a framework limited to a process validated and approved by those entities. In other words, the web services WS1 to WS3 (respectively WS4 to WS6) can only be invoked by a processing process authorized by the entity E1 (respectively the entity E2).
  • the server 15 further comprises an automatic generation engine capable of automatically generating the software component WO from the validated description it receives. Therefore the server 15 is able to process requests for the execution of the corresponding process.
  • the server 15 after generation of the software module WO transmits identification and / or authentication data of this module to the information systems 10 and 20 which is stored respectively in tables T1 and T2.
  • Tables T1 and T2 define which programs are allowed to invoke the various Web services implemented respectively in information systems 10 and 20. In one embodiment, these tables associate each Web service identifier with program identifiers. allowed to invoke the web service.
  • the table T1 (respectively T2) is stored in the information system 10 (respectively 20), preferably at the level of an extension of the middleware MW1 (respectively MW2).
  • Activation of the WO module is either free or reserved for a given entity.
  • an identification of the entity invoking the WO module is transmitted during this activation.
  • Each request sent by one of the information systems 10 or 20 and received by the server 15 triggers the execution of a particular process associated with the request.
  • only one global process is defined, capable of processing all the requests and implementing a subprocess associated with the request.
  • the global process comprises conditions and processing operations relating to the received request: analysis of the received request, obtaining an identification of the sub-process for which the request has been issued, then execution of the sub-process corresponding.
  • the method according to the invention is described in more detail with reference to FIG. 3. It corresponds to the processing by the server 15 of a request sent by one of the information systems 10 or 20, in this case by the system information 20.
  • step S100 a request is sent by the information system 20 of the entity E2, in order to execute the process PROC on the data of the information system 10 of the entity E1.
  • This request is transmitted to the software module WO.
  • Identification and / or authentication data for example, login with password
  • the sending E2 entity of the request are sent with the request.
  • step S110 the software module WO receives the request, verifies the identity of the issuing entity from the transmitted authentication data, and if the issuing entity E2 is authorized to request the execution of the program PROC. , triggers the execution of the PROC process. Otherwise, the execution of the PROC process is not triggered and a warning message is sent to the issuing entity E2.
  • step S120 the software module WO executes the initialization step of the PROC process.
  • step S200 the step S200 of the PROC process that is executed. As described above, this step S200 may include waiting for a particular event conditioning the execution of the continuation of the PROC process.
  • step S125 the process PROC implemented by the software component WO continues. If the execution of the PROC process is completed, the method according to the invention continues in the final step S160. Otherwise, the component WO determines whether to invoke a software component WS1 to WS6 processing. If so, the method according to the invention continues in step S130. In this case in the example given, the next step of the process PROC being the step S210, requiring the activation of the software component WS1, the method continues in step S130.
  • step S130 for example during the execution of step S210 of the PROC process, the software component WO invokes the software component WS4 for processing implementing a processing operation or consultation of the information system data. 10 of the entity E1.
  • the software module WO issues an activation request to the component WS4 via its interface WA4.
  • This request is transmitted in the form of a SOAP protocol message to the destination software module via the MW and MW1 parts of the middleware.
  • This request includes identification and / or authentication data of the software component WO.
  • This data can be security tokens, for example certificates or security infrastructure keys.
  • the transmission of requests between components is preferably done in a secure environment.
  • a security mechanism using a combination of public key and private key in accordance with the X509 standard can be used to encrypt the request by means of a private key prior to its transmission via the middleware or the network, the public key of decryption being known from the component execution environment so that the request can be decrypted by means of this public key before processing by the destination component.
  • step S135 following the transmission of the activation request, the WS4 component receiving the message identifies and authenticates the WO software module issuing the request from the identification and / or authentication data received. .
  • the component WS4 determines, from the reference data table T1 managed by the information system 10, whether the authenticated component WO is authorized to invoke the module WS4.
  • WO component for example the Web Service Security (WS-Security) architecture using various security mechanisms: identifier / password pair, security token method and that of the certificates in particular.
  • This technology makes it possible to authenticate the sender of the SOAP message from the data of the message. More precisely, it defines the data to be inserted in a SOAP message allowing the verification of the access rights corresponding to these various security mechanisms.
  • Authentication can also be carried out at the level of the middleware carrying the message or preferably at the level of the execution environment of the Web services (for example Axis). In such an environment, it is possible to define processing to be performed on a SOAP message before executing the message receiving web service.
  • the authentication and access authorization is carried out not by the components WS1 to WS6 implemented in the information system 10 or 20, but by the components WA1 to WA6, implemented in the server. And serving as an interface respectively to the components WS1 to WS6.
  • the server 15 comprises a table T storing the information of the tables T1 and T2, which table is stored at the level of the middleware MW of the server 15. This alternative assumes that the server provides secure access to the data of these tables so to guarantee the integrity of the data stored there.
  • step S140 the method according to the invention continues in step S140.
  • an error message is returned to the component WO, which in turn transmits an error message to the information system 20 of the entity E2 transmitting the request for processing request.
  • the process ends in step S160.
  • the execution and activation of the WO component of the process control is done exclusively from the server 15. It is thanks to this module, generated from the validated description, that the server is able to provide the exclusive use of data in the context of a given processing process, ensuring that access to the data is only for processing operations that are part of a process corresponding to the validated description.
  • step S140 the invoked WS4 software module issues a query to interrogate the information system 10 and the database 5 through the network R1, in order to obtain the data required for the execution of the processing operation associated with it.
  • step S150 the software module WS4 executes the processing operation associated with it from the data obtained and then returns to the module WO the data resulting from the execution of this operation.
  • step S160 the software module WO terminates the execution of the process PROC and returns to the information system 20 of the entity E2 the data resulting from the execution of the process PROC.
  • Steps S130 to S150 are executed again each time that the software component WO invokes a new software module WS1 to WS6 for data processing and access, in particular during the execution of the step S210, S215, S230 of the PROC process.
  • the device or method, according to the invention allows the automation of the execution of cooperation processes between several partner companies in particularly dynamic contexts requiring rapid exchange of information, or real time.
  • the pharmaceutical sector provides an example of an E2 entity (pharmacies) distributing products provided by E1 entities (laboratories / industries) with E1 and E2 internal inventory management and distributed market intelligence at the entity level.
  • E2 entity pharmaceuticals
  • E1 entities laboratories / industries
  • E2 internal inventory management and distributed market intelligence at the entity level.
  • E2 internal inventory management
  • the high-tech or automotive sectors are other examples of sectors working more and more in just-in-time with reduced stocks at the level of E2.
  • the various steps of the method according to the invention are executed by means of computer program instructions.
  • steps are thus preferably implemented by the processor (s) of the server 15 and servers 10 or 20, processor (s) using programs or subroutines designed for the execution of the various steps of this method.
  • the invention also relates to a computer program on an information medium, this program being capable of being implemented in a computer or by a data processor, this program comprising instructions adapted to the implementation of a data processing method according to the invention.
  • This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other form desirable shape.
  • the invention also relates to a computer-readable information medium, comprising instructions of a computer program as mentioned above.
  • the information carrier may be any entity or device capable of storing the program.
  • the medium may comprise storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, for example a floppy disk or a disk. hard.
  • the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means.
  • the program according to the invention can be downloaded in particular on an Internet type network.
  • the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The system comprises a program intended to execute a predefined processing operation, the program (WO) being able to trigger, when said operation is executed, the retransmission of at least one request to activate at least one processing module (WS1 - WS6) designed to execute at least one processing operation on at least one part of said data. The system also comprises control means intended to determine whether the program (WO) originating the activation request is authorized to activate said processing module (WS1 - WS6) and intended to provoke, in case of authorization, the execution of said at least one processing operation.

Description

Procédé et système de contrôle d'accès aux données d'une base de données Method and system for controlling access to data of a database

L'invention concerne un procédé et un système de traitement des données d'une base de données, permettant le contrôle d'accès aux données de la base de données.The invention relates to a method and a system for processing data of a database, enabling access control to the data of the database.

Dans le domaine des bases de données, il est connu d'utiliser des serveurs de traitement de données qui sont capables d'exécuter un processus de traitement sur tout ou partie des données de la base de données après interrogation de cette base.In the field of databases, it is known to use data processing servers which are capable of executing a processing process on all or part of the data of the database after interrogation of this database.

Dans les systèmes de gestion de bases de données actuels, les règles définissant les droits d'accès aux données d'un système d'information donnent des droits en lecture et/ou écriture à des entités données (entreprises, utilisateurs, etc ..) en fonction de niveaux d'autorisation et de profils associés à ces niveaux. Il en résulte une limitation forte des possibilités d'accès aux données du système d'information, une entité n'ayant accès qu'à la partie des données pour laquelle elle possède un droit de lecture ou d'écriture.In current database management systems, the rules defining the access rights to the data of an information system give rights to read and / or write to given entities (companies, users, etc.). based on permission levels and profiles associated with these levels. This results in a strong limitation of the access possibilities to the data of the information system, an entity having access only to the part of the data for which it has a right to read or write.

Par exemple, lorsqu'une entité n'est pas intéressée par obtenir les données confidentielles telles que stockées dans la base de données, mais par une information plus globale par rapport à ces données, comme par exemple la moyenne ou l'écart type d'une liste de valeurs stockées dans la base de données, information qui elle n'est pas forcément confidentielle, il peut être utile de disposer d'un système qui soit capable de contrôler les droits d'accès aux données en fonction des opérations de traitements effectuées sur ces données.For example, when an entity is not interested in obtaining the confidential data as stored in the database, but by more global information in relation to these data, such as the average or the standard deviation of a list of values stored in the database, which information is not necessarily confidential, it may be useful to have a system that is able to control the access rights to the data according to the processing operations performed on these data.

Les systèmes actuels de gestion de base de données ne sont pas capables de mettre en œuvre un tel contrôle. Il est donc nécessaire de compléter le système de gestion de base de données par le développement d'une application spécifique qui soit apte à mettre en œuvre un tel contrôle. Une telle application spécifique doit, d'une part, s'adapter aux besoins et aux moyens d'informatiques des entités interrogeant la base de données, et d'autre part, être capable de s'interfacer avec le système de gestion de bases de données existant. Un tel développement peut en outre s'avérer coûteux. En outre, il n'est pas simple de vérifier que cette application spécifique exécute bel et bien, et uniquement, un processus particulier autorisé. En effet une telle vérification doit s'effectuer sur le code source de l'application, et par un processus manuel de comparaison entre le code source et les spécifications fonctionnelles de l'application.Current database management systems are not capable of implementing such control. It is therefore necessary to complete the database management system by developing a specific application that is able to implement such a control. Such a specific application must, on the one hand, adapt to the needs and the IT means of the entities interrogating the database, and on the other hand, be able to interface with the database management system. existing data. Such development may also prove costly. In addition, it is not easy to verify that this specific application does, and only, perform a particular authorized process. Indeed such a verification must be done on the source code of the application, and by a manual process of comparison between the source code and the functional specifications of the application.

Il existe donc un besoin pour un dispositif de traitement des données d'une ou plusieurs bases de données, permettant de garantir simplement et à moindre coût que l'accès aux données du système d'information se fait dans le cadre d'un processus de traitement prédéfini. L'invention vient répondre à ce besoin.There is therefore a need for a data processing device of one or more databases, making it possible to guarantee simply and inexpensively that access to the data of the information system is made in the context of a data processing process. predefined treatment. The invention responds to this need.

L'invention a pour objet un système de traitement de données comprenant un serveur de médiation entre une première entité dite entité cliente et une deuxième entité dite entité fournisseur, ledit serveur comprenant des moyens d'exécution de programme pour exécuter, sur requête en provenance de l'entité cliente, un programme mettant en œuvre un processus prédéfini de traitement, ledit programme étant apte à déclencher, lors de l'exécution dudit processus, une émission à travers une liaison de communication d'au moins une requête d'activation d'au moins un module de traitement d'un serveur de l'entité fournisseur afin d'exécuter au moins une opération de traitement sur au moins une partie des données d'au moins une base de données accessible via le serveur de l'entité fournisseur, le système comprenant des moyens de contrôle conçus pour, en cas d'authentification dudit programme, déterminer si ledit programme est autorisé à activer ledit module de traitement et pour, en cas d'absence autorisation, inhiber l'exécution de ladite au moins une opération de traitement.The subject of the invention is a data processing system comprising a mediation server between a first entity called a client entity and a second entity called a provider entity. said server comprising program execution means for executing, on request from the client entity, a program implementing a predefined process of processing, said program being able to trigger, during the execution of said process, a transmission through a communication link of at least one activation request of at least one processing module of a server of the provider entity in order to execute at least one processing operation on at least a part of the data at least one database accessible via the server of the supplier entity, the system comprising control means designed for, in case of authentication of said program, determining whether said program is authorized to activate said processing module and for , in the absence of authorization, inhibit the execution of said at least one processing operation.

Le dispositif selon l'invention permet d'autoriser l'accès à des données d'une base de données dans un cadre limité à un processus de traitement prédéfini, qui est celui mis en œuvre par le programme de traitement autorisé, et de contrôler l'exécution du processus lors de l'activation des modules de traitement.The device according to the invention makes it possible to authorize access to data from a database in a context limited to a predefined processing process, which is that implemented by the authorized processing program, and to control the execution of the process when activating the processing modules.

Le dispositif permet ainsi d'offrir à une entité une visibilité sélective des données d'une base de données. L'autorisation d'accès aux données de la base est accordée pour un usage donné, c'est-à-dire pour l'exécution d'un processus de traitement donné. Seul ce processus est considéré pour la détermination de l'autorisation d'accès et pas seulement la nature des données. De la sorte, seule importe l'utilisation qui est faite des données, et non pas les données utilisées.The device thus makes it possible to offer an entity selective visibility of the data of a database. Authorization to access data in the database is granted for a given use, that is, for the execution of a given processing process. Only this process is considered for determining access authorization and not just the nature of the data. In this way, only the use of the data is important, not the data used.

Selon un mode de réalisation particulier, le système selon l'invention comprend des moyens d'authentification dudit programme, lesdits moyens de contrôle étant destinés à n'être activés qu'en cas d'authentification.According to a particular embodiment, the system according to the invention comprises means of authentication of said program, said control means being intended to be activated only in case of authentication.

La sécurité du système est renforcée du fait que seul un programme préalablement authentifié est susceptible d'être autorisé à invoquer un module de traitement.The security of the system is enhanced by the fact that only a previously authenticated program is likely to be allowed to invoke a processing module.

Selon un mode de réalisation particulier, le serveur de médiation comprend des moyens de génération logicielle aptes à générer ledit programme à partir d'une description en langage formel dudit processus, ladite description étant définie par référence à au moins un module choisi parmi une pluralité de modules de traitement du serveur de l'entité fournisseur activables indépendamment les uns des autres.According to a particular embodiment, the mediation server comprises software generation means capable of generating said program from a description in formal language of said process, said description being defined by reference to at least one module selected from a plurality of processor modules of the provider entity server that can be activated independently of one another.

La description formelle permet, par référence aux modules de traitement, de définir les opérations de traitement sur les entités, ainsi que les données sur lesquelles ces opérations vont être effectuées et les données en résultant. Elle détermine la manière dont deux entités vont pouvoir échanger des données résultant des traitements ou des accès effectués sur les données de leurs bases de données.The formal description allows, by reference to the processing modules, to define the processing operations on the entities, as well as the data on which these operations will be performed and the data resulting therefrom. It determines how two entities will be able to exchange data resulting from processing or access to data in their databases.

Ainsi le contexte d'usage dans lequel une entité est autorisée à accéder à des données, est entièrement déterminé par la description d'un processus de traitement de données, description utilisant un langage formel de description de processus.Thus the usage context in which an entity is authorized to access data, is entirely determined by the description of a data processing process, description using a formal process description language.

Le dispositif est ainsi facilement adaptable à l'évolution des besoins des entités interrogeant le système d'information, par modification de la description du processus et génération automatique du module logiciel mettant en œuvre le processus décrit.The device is thus easily adaptable to changing needs of the entities interrogating the information system, by changing the description of the process and automatic generation of the software module implementing the described process.

Selon un mode de réalisation particulier, le système selon l'invention comprend des moyens de détection d'une occurrence d'au moins un événement prédéfini, occurrence à laquelle est subordonnée l'exécution dudit processus.According to a particular embodiment, the system according to the invention comprises means for detecting an occurrence of at least one predefined event, an occurrence to which the execution of said process is subordinated.

Il est ainsi possible de programmer très précisément le moment du déclenchement de l'exécution du processus. Cela permet d'automatiser complètement un processus de coopération entre deux entités, notamment lorsqu'il s'agit d'un processus itératif, ou à exécuter de manière périodique. Le programme est dans ce cas préférentiellement réinitialisé après chaque exécution, afin d'entrer dans la phase de détection déterminant l'exécution suivante.It is thus possible to precisely program the timing of the execution of the process. This allows to fully automate a process of cooperation between two entities, especially when it is an iterative process, or to run periodically. In this case, the program is preferably reset after each execution, in order to enter the detection phase determining the next execution.

Le module de traitement mettant en œuvre l'opération de traitement est choisi parmi une pluralité de modules de traitement activables indépendamment les uns des autres. Par la présence de modules logiciels autonomes, activables indépendamment les uns des autres, il est ainsi possible de définir, opération par opération ou groupe d'opérations par groupe d'opérations, les conditions d'accès aux données de la base.The processing module implementing the processing operation is chosen from among a plurality of processing modules that can be activated independently of one another. By the presence of autonomous software modules, which can be activated independently of one another, it is thus possible to define, operation by operation or group of operations by group of operations, the access conditions to the data of the database.

De préférence, le serveur de médiation comprend des moyens pour vérifier si une entité est autorisée à invoquer l'exécution dudit programme. De cette manière, le serveur de médiation jour le rôle de tiers de confiance entre l'entité cliente et l'entité fournisseur.Preferably, the mediation server comprises means for verifying whether an entity is authorized to invoke the execution of said program. In this way, the mediation server plays the role of trusted third party between the client entity and the provider entity.

L'ensemble du processus de coopération entre ces deux entités est contrôlé au niveau du serveur de médiation, notamment à travers l'emploi d'un programme authentifiable, issu d'une description validée par les entités coopérant. Le serveur de médiation joue le rôle de médiateur en ce que l'exécution du processus de coopération nécessite l'intervention du serveur de médiation, et en ce que, d'une part il reçoit les requêtes en provenance de l'entité cliente, d'autre part active, par requête émise à destination du serveur de l'entité fournisseur, les différents modules de traitements permettant l'accès aux données d'une base de l'entité fournisseur.The entire process of cooperation between these two entities is controlled at the level of the mediation server, in particular through the use of an authenticatable program, resulting from a description validated by the cooperating entities. The mediation server acts as a mediator in that the execution of the cooperation process requires the intervention of the mediation server, and in that, on the one hand, it receives the requests from the client entity, on the other hand activates, by request sent to the server of the provider entity, the different processing modules allowing access to the data of a base of the supplier entity.

L'invention a également pour objet un serveur de médiation entre une entité cliente et une entité fournisseur, ledit serveur de médiation comprenant des moyens d'exécution de programme pour exécuter, sur requête en provenance de l'entité cliente, un programme mettant en œuvre un processus prédéfini de traitement, ledit programme étant apte à déclencher, lors de l'exécution dudit processus, une émission à travers une liaison de communication d'au moins une requête d'activation d'au moins un module de traitement du serveur de l'entité fournisseur afin d'exécuter au moins une opération de traitement sur au moins une partie des données d'au moins une base de données accessible via le serveur de l'entité fournisseur, ledit serveur de médiation comprenant des moyens de contrôle conçus pour, en cas d'authentification dudit programme, déterminer si ledit programme est autorisé à activer ledit module de traitement et pour, en cas d'absence autorisation, inhiber l'exécution de ladite au moins une opération de traitement.The invention also relates to a mediation server between a client entity and a provider entity, said mediation server comprising program execution means for executing, on request from the client entity, a program implementing a predefined process of processing, said program being able to trigger, during the execution of said process, a transmission through a communication link of at least one activation request of at least one processing module of the server of the provider entity to perform at least one processing operation on at least a portion of the data of at least one database of data accessible via the server of the supplier entity, said mediation server including control means designed for, in case of authentication of said program, determining whether said program is authorized to activate said processing module and for, in case of absence of authorization, inhibiting the execution of said at least one processing operation.

L'invention a également pour objet un serveur de traitement de données accédant à au moins une base de données, ledit serveur de traitement étant apte à communiquer à travers une liaison de communication avec un serveur de médiation entre une entité cliente et une entité fournisseur, ledit serveur de traitement comprenant au moins un module de traitement, conçu pour exécuter au moins une opération de traitement sur au moins une partie desdites données de ladite base de données et activable par requête à partir du serveur de médiation au moyen d'un programme mettant en œuvre un processus prédéfini de traitement, ledit serveur de traitement comprenant des moyens de contrôle pour, suite à l'émission par ledit programme d'une requête d'activation d'un module de traitement, vérifier si ledit programme est autorisé à activer ledit module de traitement et pour, en cas d'absence autorisation, inhiber l'exécution de ladite au moins une opération de traitement.The invention also relates to a data processing server accessing at least one database, said processing server being able to communicate through a communication link with a mediation server between a client entity and a provider entity, said processing server comprising at least one processing module, designed to execute at least one processing operation on at least a part of said data of said database and activatable by request from the mediation server by means of a program setting implementing a predefined processing process, said processing server comprising control means for, following the transmission by said program of a request for activation of a processing module, checking whether said program is authorized to activate said processing module and for, in the absence of authorization, inhibit the execution of said at least one processing operation.

Corrélativement au système selon l'invention, l'invention a pour objet un procédé de traitement de données incluses dans d'au moins une base de données, ledit procédé comprenant au moins,Correlatively to the system according to the invention, the invention relates to a data processing method included in at least one database, said method comprising at least,

- une étape d'exécution par un serveur de médiation d'un programme mettant en œuvre un processus prédéfini de traitement, ladite étape d'exécution étant destinée à être exécutée suite à la réception par le serveur de médiation d'une requête en provenance d'une entité cliente,a step of execution by a mediation server of a program implementing a predefined process of processing, said execution step being intended to be executed following the reception by the mediation server of a request coming from a 'a client entity,

- une étape de déclenchement par ledit programme, lors de l'exécution dudit processus, de rémission à travers une liaison de communication d'au moins une requête d'activation d'au moins un module de traitement du serveur de traitement afin d'exécuter au moins une opération de traitement sur au moins une partie desdites données,a step of triggering by said program, during the execution of said process, of remission through a communication link of at least one activation request of at least one processing module of the processing server in order to execute at least one processing operation on at least a part of said data,

- une étape de contrôle pour déterminer si le programme à l'origine de la requête d'activation est autorisé à activer ledit module de traitement,a control step for determining whether the program causing the activation request is authorized to activate said processing module,

- une étape de déclenchement de l'exécution de ladite au moins une opération de traitement, ladite étape de déclenchement n'étant exécutée qu'en cas d'autorisation.a step of triggering the execution of said at least one processing operation, said triggering step being executed only in the case of authorization.

Ce procédé comprend de préférence une étape d'authentification du programme à l'origine de la requête d'activation, ladite étape de contrôle n'étant exécutée qu'en cas d'authentification. D'autres buts, caractéristiques et avantages de l'invention apparaîtront à travers la description qui va suivre, donnée uniquement à titre d'exemple non limitatif, et faite par référence aux dessins annexés sur lesquels:This method preferably comprises a step of authenticating the program at the origin of the activation request, said checking step being executed only in case of authentication. Other objects, features and advantages of the invention will become apparent from the description which follows, given solely by way of nonlimiting example, and with reference to the appended drawings in which:

- la figure 1 est une représentation schématique d'un système incorporant le dispositif selon l'invention,FIG. 1 is a schematic representation of a system incorporating the device according to the invention,

- la figure 2 est un exemple de description de processus mis en œuvre par le dispositif selon l'invention,FIG. 2 is an exemplary process description implemented by the device according to the invention,

- la figure 3 est un organigramme simplifié du procédé selon l'invention.FIG. 3 is a simplified flowchart of the method according to the invention.

Le fonctionnement du dispositif selon l'invention est décrit dans un contexte industriel où deux entités E1 et E2 (deux entreprises) sont amenées à coopérer.The operation of the device according to the invention is described in an industrial context where two entities E1 and E2 (two companies) are brought to cooperate.

L'entité E1 est un fournisseur de composants de base pour la fabrication de produits manufacturés. L'entité E2 est un client de l'entité E1 et s'approvisionne en composants auprès de l'entité E1. L'entité E2 assure la fabrication de produits manufacturés et la distribution des produits manufacturés qu'elle produit.E1 is a supplier of basic components for the manufacture of manufactured products. Entity E2 is a client of the entity E1 and obtains components from the entity E1. The E2 entity manufactures manufactured products and distributes the manufactured products it produces.

Le système représenté à la figure 1 comprend:The system represented in FIG. 1 comprises:

- une base de données 5,a database 5,

- un serveur 10, représentant le système d'information 10 de l'entité E1 , accédant à la base de données 5,a server 10, representing the information system 10 of the entity E 1, accessing the database 5,

- une base de données 25,a database 25,

- un serveur 20, représentant le système d'information 20 de l'entité E2, accédant à la base de données 25,a server 20, representing the information system 20 of the entity E2, accessing the database 25,

- un serveur 15 mettant en œuvre le dispositif selon l'invention et apte à communiquer avec le serveur 10 via un réseau R1 de communication et avec le serveur 20 via un réseau R2 de communication, les deux réseaux R1 et R2 pouvant être confondus.a server 15 implementing the device according to the invention and able to communicate with the server 10 via a communication network R1 and with the server 20 via a communication network R2, the two networks R1 and R2 can be merged.

Le serveur 10 comprend un module logiciel 12 de gestion de la base de données 5 ainsi qu'un module logiciel 1 1 dédié à une activité de l'entité E1 , par exemple un logiciel de régulation de la production.The server 10 comprises a software module 12 for managing the database 5 as well as a software module 11 dedicated to an activity of the entity E1, for example a production control software.

De manière symétrique, le serveur 20 comprend un module logiciel 22 de gestion de la base de données 25 ainsi qu'un module logiciel 21 dédié à une activité de l'entité E2, par exemple un logiciel d'établissement de commandes de produits.Symmetrically, the server 20 includes a software module 22 for managing the database 25 and a software module 21 dedicated to an activity of the entity E2, for example product ordering software.

Dans la base de données 5 sont stockées notamment des informations sur les quantités de composants disponibles dans les stocks de l'entité E1 . Dans la base de données 25 sont stockées notamment des informations sur les quantités de composants et de produits manufacturés disponibles dans ses stocks et des informations sur les quantités de produits commandés à l'entité E2.In the database 5 are stored in particular information on the quantities of components available in the stocks of the entity E1. In the database 25 are stored in particular information on the quantities of components and manufactured products available in its inventory and information on the quantities of products ordered from the entity E2.

Le serveur 15 représenté à la figure 1 comprend des moyens d'exécution de programme ainsi qu'un ensemble de modules logiciels WA1 à WA6, WL1 à WL3, et WO. Le système d'information 10 met en œuvre les modules logiciels WS1 à WS3, et symétriquement, le système d'information 20 met en œuvre les modules logiciels WS4 à WS6. Ces différents modules logiciels coopèrent et communiquent entre eux grâce à un middleware MW, MW1 , MW2 qui est mis en œuvre de manière répartie entre le serveur 15 (partie MW du middleware), le système d'information 10 (partie MW1 du middleware) et système d'information 20 (partie MW2 du middleware).The server 15 shown in FIG. 1 comprises program execution means as well as a set of software modules WA1 to WA6, WL1 to WL3, and WO. The information system 10 implements the software modules WS1 to WS3, and symmetrically, the information system 20 implements the software modules WS4 to WS6. These different software modules cooperate and communicate with each other by means of MW, MW1, MW2 middleware which is implemented in a distributed manner between the server 15 (part MW of the middleware), the information system 10 (part MW1 of the middleware) and information system 20 (part MW2 of the middleware).

Les modules logiciels WA1 , WA2, WA3 sont des modules d'accès aux données du système d'information 10, mettant en œuvre une interface permettant au serveur 15 d'interroger le système d'information 10 et sa base de données 5. Chacun des modules WA1 , WA2, WA3 constitue en fait une interface de type API (Application Program Interface) vis-à-vis respectivement des modules logiciels WS1 , WS2, WS3, correspondant mis en œuvre dans le système d'information 10. Les modules WS1 , WS2, WS3 accèdent à la base de données 5 via le module 12 de gestion de la base de données. En outre ils mettent en œuvre une ou plusieurs fonctions de traitement sur les données auxquelles ils accèdent.The software modules WA1, WA2, WA3 are data access modules of the information system 10, implementing an interface enabling the server 15 to interrogate the information system 10 and its database 5. Each of the modules WA1, WA2, WA3 is in fact an interface of the API (Application Program Interface) type with respect to the respective software modules WS1, WS2, WS3 implemented in the information system 10. The modules WS1, WS2, WS3 access the database 5 via the database management module 12. In addition, they implement one or more processing functions on the data to which they access.

De manière symétrique, les modules logiciels WA4, WA5, WA6 sont des modules d'accès aux données du système d'information 20, mettant en œuvre une interface permettant au serveur 15 d'interroger le système d'information 20 et sa base de données 25. Chacun des modules WA4, WA5, WA6 constitue en fait une interface de type API (Application Program Interface) vis-à-vis respectivement des modules logiciels WS4, WS5, WS6, correspondant mis en œuvre dans le système d'information 20. Les modules WS4, WS5, WS6 accèdent à la base de données 25 via le module 22 de gestion de la base de données. En outre ils mettent en œuvre une ou plusieurs fonctions de traitement sur les données auxquelles ils accèdent.Symmetrically, the software modules WA4, WA5, WA6 are data access modules of the information system 20, implementing an interface enabling the server 15 to interrogate the information system 20 and its database. 25. Each of the modules WA4, WA5, WA6 is in fact an interface of the API (Application Program Interface) type with respect to the respective software modules WS4, WS5, WS6 implemented in the information system 20. The modules WS4, WS5, WS6 access the database 25 via the database management module 22. In addition, they implement one or more processing functions on the data to which they access.

Le module logiciel WO est un module de pilotage mettant en œuvre un processus automatisé de traitement de données, processus correspondant à une manière pour les entités E1 et E2 de coopérer à travers leurs systèmes d'informations. Le serveur 15 est susceptible d'exécuter simultanément plusieurs tels module logiciels WO', WO", etc. Cependant pour des raisons de clarté un seul module logiciel WO a été représenté à la figure 1.The software module WO is a control module implementing an automated data processing process, a process corresponding in a manner for the entities E1 and E2 to cooperate through their information systems. The server 15 is capable of simultaneously executing several such software modules WO ', WO ", etc. However, for the sake of clarity, a single software module WO has been represented in FIG.

Les modules logiciels WL1 , WL2, WL3 sont des modules de traitement de données de base, susceptibles d'être invoqués par le module WO, disponibles par exemple via une librairie de composants logiciels de traitement.The software modules WL1, WL2, WL3 are basic data processing modules that can be invoked by the WO module, available for example via a library of processing software components.

Les différents modules logiciels précités WO, WA1 à WA6, WS1 à WS6, WLO à WL3, sont des composants logiciels autonomes, activables indépendamment les uns des autres. Ils sont de préférence réalisée sous la forme de composants invocables via un réseau de communication tel Internet, par exemple des services Web (ou "Web Service" selon la dénomination anglo-saxonne). Une description et spécification détaillée de tels composants peuvent être trouvées sur le site Internet http://www.w3.org. Ces composants sont invocables au moyen de requêtes conformes au protocole HTTP (Hypertext Transfert Protocol).The various aforementioned software modules WO, WA1 to WA6, WS1 to WS6, WLO to WL3, are autonomous software components that can be activated independently of one another. They are preferably made in the form of components that can be invoked via a communication network such as the Internet, for example Web services (or "Web Service" according to the Anglo-Saxon name). A description and detailed specification of such components can be found on the website http://www.w3.org. These components can be invoked by Hypertext Transfer Protocol (HTTP) -compliant requests.

Le middleware MW, MW1 , MW2 est mis en œuvre en utilisant un protocole de communication approprié à la communication entre de tels composants, par exemple le protocole SOAP (Simple Object Access Protocol). Un tel protocole permet l'envoi de messages SOAP entre les composants. Le middleware comprend de préférence des fonctions de sécurité, permettant la mise en œuvre de procédure d'authentification et de contrôle d'accès lors des communications entres les composants, notamment lors de l'invocation d'un composant.The middleware MW, MW1, MW2 is implemented using a communication protocol suitable for communication between such components, for example the Simple Object Access Protocol (SOAP). Such a protocol allows the sending of SOAP messages between the components. The middleware preferably includes security functions, allowing the implementation of authentication and access control procedures during communications between the components, in particular during the invocation of a component.

Les messages SOAP pouvant être transportés par le protocole HTTP, les différents modules logiciels précités WO, WA1 à WA6, WS1 à WS6, WLO à WL3 qui sont exécutés par le serveur 15 ou par un des systèmes d'information 10 ou 20, sont susceptibles être invoqués par message SOAP à partir de n'importe quel terminal ou système disposant d'un logiciel disposant d'une interface d'accès au Web (par exemple un navigateur Web) et accédant via le réseau R1 ou R2 au serveur 15 ou à un des systèmes d'information 10 ou 20.The SOAP messages that can be transported by the HTTP protocol, the various aforementioned software modules WO, WA1 to WA6, WS1 to WS6, WLO to WL3 that are executed by the server 15 or by one of the information systems 10 or 20, are susceptible be invoked by SOAP message from any terminal or system having software having a web access interface (eg a web browser) and accessing via the network R1 or R2 to the server 15 or one of the information systems 10 or 20.

Le système d'information 20 de l'entité E2 transmet au serveur 15 des requêtes ou messages en vue de l'exécution d'opérations prédéfinies sur les données du système d'information 10 de l'entité E1. Ces opérations peuvent être des traitements mathématiques, et logiques ou de simples interrogations des données du système d'information 10 de l'entité E1. Réciproquement, le système d'information 10 de l'entité E1 peut transmettre au serveur 15 des requêtes ou messages en vue de l'exécution d'opérations prédéfinies sur les données du système d'information 20 de l'entité E2.The information system 20 of the entity E2 transmits to the server 15 requests or messages for the execution of predefined operations on the data of the information system 10 of the entity E1. These operations can be mathematical, logic or simple queries of the data of the information system 10 of the entity E1. Conversely, the information system 10 of the entity E1 can transmit to the server 15 requests or messages for the execution of predefined operations on the data of the information system 20 of the entity E2.

La figure 1 montre que le système est bidirectionnel dans la mesure où le serveur 15 peut être utilisé simultanément, d'une part pour l'exécution d'un processus lorsque l'entité E1 envoie au serveur une requête au serveur 15 pour accéder à des données du système d'information de l'entité E2, et d'autre part, pour l'exécution d'un processus lorsque l'entité E2 envoie au serveur une requête au serveur 15 pour accéder à des données du système d'information de l'entité E1.FIG. 1 shows that the system is bidirectional insofar as the server 15 can be used simultaneously, on the one hand for the execution of a process when the entity E1 sends the server a request to the server 15 to access data from the information system of the entity E2, and secondly, for the execution of a process when the entity E2 sends the server a request to the server 15 to access data from the information system of the entity. the entity E1.

Les modalités selon lesquelles l'entité E2 est autorisée à accéder aux données du système d'information 10 de l'entité E1 (ou vice versa) sont formalisées au moyen d'une description d'un processus de traitement.The conditions according to which the entity E2 is authorized to access the data of the information system 10 of the entity E1 (or vice versa) are formalized by means of a description of a processing process.

Un tel processus décrit les modalités de coopération entre les systèmes d'information des entités E1 et E2, c'est-à-dire la manière dont le serveur 15 traite de manière automatique les requêtes qu'il reçoit de l'un des systèmes d'information.Such a process describes the cooperation arrangements between the information systems of the entities E1 and E2, that is to say the way in which the server automatically processes the requests it receives from one of the communication systems. 'information.

Un tel processus comprend:Such a process includes:

- une ou plusieurs opérations de traitement sur les données d'un des systèmes d'information 10 ou 20,one or more processing operations on the data of one of the information systems 10 or 20,

- le cas échéant, une ou plusieurs opérations de contrôle nécessaires au contrôle de l'exécution du processus, notamment des opérations de vérification de conditions ou des opérations d'attente d'un événement particulier tel que: réception d'un email, d'un document, d'un SMS, d'un appel téléphonique, etc. Les conditions à vérifier lors du processus sont par exemple:- if necessary, one or more control operations necessary to control the execution of the process, including condition verification operations or operations waiting for a particular event such as: receiving an email, a document, an SMS, a phone call, etc. The conditions to check during the process are for example:

- des conditions relatives à des données extraites d'un des systèmes d'information 10 ou 20,conditions relating to data extracted from one of the information systems 10 or 20,

- des conditions relatives à des données résultant d'une opération de traitement précédente,conditions relating to data resulting from a previous processing operation,

- des conditions relatives à d'autres données, par exemple la date ou l'heure courante, l'identité de l'émetteur de la requête, ou toute autre donnée accessible par le serveur 15,conditions relating to other data, for example the current date or time, the identity of the sender of the request, or any other data accessible by the server 15,

- plus généralement, des conditions relatives à un algorithme définissant l'enchaînement des opérations et les conditions dans lesquelles elles s'enchaînent.- More generally, conditions relating to an algorithm defining the sequence of operations and the conditions in which they are linked.

Des opérations de vérification de conditions sont par exemple exécutées avant ou après l'exécution d'une opération de traitement. Il en est de même pour les autres opérations d'attente. Une opération d'attente d'un événement prédéfini peut en outre être exécutée au début du processus, de manière à conditionner le début de l'exécution du processus par l'occurrence de cet événement.For example, condition checking operations are performed before or after execution of a processing operation. The same is true for other waiting operations. In addition, a waiting operation of a predefined event can be executed at the beginning of the process, in order to condition the start of the execution of the process by the occurrence of this event.

Le processus comporte par exemple:The process includes for example:

- une première opération 01 de détermination du nombre de produits à commander à l'entité E1 en fonction du nombre de produits dans les stocks de l'entité E1 et du nombre de commandes reçues par l'entité E2,a first operation 01 for determining the number of products to be controlled by the entity E1 as a function of the number of products in the stocks of the entity E1 and the number of orders received by the entity E2,

- une deuxième opération 02 de détermination du nombre produits à commander à d'autres fournisseurs, cette deuxième opération étant exécutée consécutivement à la première opération lorsque deux conditions sont remplies, la première condition étant que le nombre de produits dans les stocks de l'entité E1 est inférieur à un seuil donné, la deuxième condition étant que le nombre de produits dans les stocks de l'entité E1 déterminé lors de la première opération 01 ne permet pas de répondre à toutes les commandes reçues par l'entité E2.a second operation 02 for determining the number of products to be ordered from other suppliers, this second operation being executed consecutively to the first operation when two conditions are fulfilled, the first condition being that the number of products in the stocks of the entity E1 is below a given threshold, the second condition being that the number of products in the stocks of the entity E1 determined during the first operation 01 does not make it possible to respond to all the orders received by the entity E2.

La description formelle de ce processus est réalisée en utilisant un langage formel approprié pour la description de processus, par exemple le langage graphique BPMN (Business Process Management Notation).The formal description of this process is performed using a formal language appropriate for the process description, for example the Business Process Management Notation (BPMN).

Un outil d'édition capable d'éditer une description en langage BPMN est utilisé pour générer la description et ainsi formaliser le processus. Un tel langage permet de définir la manière d'exécuter et d'enchaîner les opérations de traitement mises en œuvre par les composants fournis par la librairie, de définir les flux de données, de définir de nouvelles opérations de traitement.An editing tool capable of editing a BPMN description is used to generate the description and thus formalize the process. Such a language makes it possible to define the manner of executing and linking the processing operations implemented by the components provided by the library, to define the data flows, to define new processing operations.

Un exemple de telle description graphique est présenté à la figure 2, dans le cas d'exemple d'un processus élémentaire d'inventaire de stocks court terme et moyen terme de produits utilisés sous certaines conditions dans un processus d'approvisionnement.An example of such a graphic description is shown in Figure 2, in the case of an example of an elementary inventory process of short-term and medium-term stocks of products used under certain conditions in a procurement process.

Dans la notation graphique utilisée, le rond avec trait fin désigne l'état initial du processus. Les rectangles avec des bords arrondis désignent des opérations exécutées par un service Web. Les autres opérations de traitement sont représentées par des rectangles. Les opérations de test sont représentées par des losanges.In the graphical notation used, the round with thin line designates the initial state of the process. Rectangles with rounded edges designate operations performed by a web service. The other processing operations are represented by rectangles. The test operations are represented by diamonds.

Dans l'exemple de processus PROC illustré à la figure 2, la description du processus comprend les éléments suivants:In the PROC process example shown in Figure 2, the process description includes the following elements:

- une étape S200 correspondant à l'étape d'initialisation du processus;a step S200 corresponding to the step of initializing the process;

- une étape S210 de traitement, correspondant à la détermination, par interrogation de la base de données 25 de l'entité E2, du nombre X de composants d'un type T donné qui sont disponibles dans les stocks de l'entité E2;a processing step S210, corresponding to the determination, by querying the database of the entity E2, of the number X of components of a given type T that are available in the stocks of the entity E2;

- une étape S215 de traitement, correspondant à la détermination, par interrogation de la base de données 25 de l'entité E2, du nombre Y de produits manufacturés incorporant le composant du type T qui sont à produire par l'entité E2;a processing step S215, corresponding to the determination, by interrogation of the database of the entity E2, of the number Y of manufactured products incorporating the component of the type T that are to be produced by the entity E2;

- une étape S220 de traitement, correspondant à la comparaison des résultats obtenus aux étapes S210 et S215 et à la détermination de la quantité Z de composants de type T à commander correspondant à la différence Z=Y-X;a processing step S220, corresponding to the comparison of the results obtained in steps S210 and S215 and to the determination of the quantity Z of components of type T to be controlled corresponding to the difference Z = Y-X;

- une étape S225 de vérification d'une condition lors de laquelle on vérifie si la quantité Z de composants calculée à l'étape S220 est non nulle; dans l'affirmative le processus se poursuit à l'étape S230, sinon à l'étape S260;a step S225 of verifying a condition in which it is checked whether the quantity Z of components calculated in step S220 is non-zero; if yes, the process continues in step S230, otherwise in step S260;

- une étape S230 de traitement, correspondant à la détermination, par interrogation de la base de données 5 de l'entité E1 , du nombre Z1 de composants de type T qui sont disponibles dans les stocks de l'entité E1 ;a step S230 of processing, corresponding to the determination, by querying the database 5 of the entity E1, of the number Z1 of components of the type T that are available in the stocks of the entity E1;

- une étape S240 de vérification d'une condition, lors de laquelle on vérifie si la quantité Z1 est supérieure à un seuil; dans l'affirmative le processus se poursuit à l'étape S250, sinon à l'étape S260;a step S240 of checking a condition, in which it is checked whether the quantity Z1 is greater than a threshold; if so, the process continues in step S250, otherwise in step S260;

- une étape S250 lors de laquelle une commande de composants est envoyée à l'entité E1 ;a step S250 during which a component command is sent to the entity E1;

- une étape S260 correspondant à la fin du processus et à la libération des ressources logicielles et matérielles utilisées par le processus.a step S260 corresponding to the end of the process and the release of the software and hardware resources used by the process.

L'étape initiale S200 comprend optionnellement une opération de vérification d'une condition prédéfinie ou de détection de l'occurence d'au moins un événement prédéfini. Cette opération conditionne l'exécution des étapes S210 à S260 suivantes. Cet événement est par exemple la réception d'une requête ou d'un message en provenance d'une entité donnée, par exemple de l'entité E2 ou E1 , ou d'une toute autre entité, la réception d'un document, la réception d'un SMS, la réception d'un appel téléphonique, l'occurrence d'une date ou d'une heure donnée, etc.The initial step S200 optionally comprises an operation for verifying a predefined condition or for detecting the occurrence of at least one predefined event. This operation conditions the execution of the following steps S210 to S260. This event is for example the reception of a request or a message from a given entity, for example from the entity E2 or E1, or from any other entity, the receipt of a document, the receiving an SMS, receiving a phone call, the occurrence of a given date or time, etc.

La description en langage BPMN du processus PROC est interprétée par un moteur de génération automatique capable de générer du code source en langage BPEL4WS (Business Process Execution Language for Web Service) qui permet de générer des composants de type service Web et d'invoquer des services Web existant. De tels outils bien connus des experts du domaine de la gestion de processus. Avec ce type d'outils, un processus peut être défini à partir de composants types prédéfinis ou de gabarits, notamment comme une coopération et un ordonnancement particulier de ces composants types. Des composants de type service Web WS1 à WS6 sont alors utilisés lors de la mise en œuvre du processus, chaque service Web correspondant à une instanciation d'un gabarit ayant servi à la définition du processus.The BPMN description of the PROC process is interpreted by an automatic generation engine capable of generating source code in BPEL4WS (Business Process Execution Language for Web Service) language that allows generating Web service components and invoking services. Existing web. Such tools are well known to experts in the field of process management. With this type of tools, a process can be defined from predefined standard components or templates, especially as a particular cooperation and scheduling of these typical components. Web services components WS1 to WS6 are then used during the implementation of the process, each web service corresponding to an instantiation of a template used to define the process.

L'exécution par le composant WO du processus PROC de la figure 2 fait appel, dans l'exemple décrit ici, aux composants WA3 à WA5, WS3 à WS5 et WL1 à WL3.The execution by the WO component of the process PROC of FIG. 2 uses, in the example described here, the components WA3 to WA5, WS3 to WS5 and WL1 to WL3.

Chacun des modules logiciels WL1 à WL3 est apte à mettre en œuvre une ou plusieurs opérations élémentaires de traitement prédéfinies. Dans le processus PROC d'exemple illustré à la figure 2, l'étape S220, (respectivement S225, S240) est mise en œuvre par le module logiciel WL1 (respectivement WL2, WL3). Les modules logiciels WL1 à WL3 peuvent eux-mêmes être issus d'une génération automatique à partir d'une description en langage formel.Each of the software modules WL1 to WL3 is able to implement one or more predefined basic processing operations. In the example PROC process illustrated in FIG. 2, the step S220, (respectively S225, S240) is implemented by the software module WL1 (respectively WL2, WL3). The software modules WL1 to WL3 can themselves be derived from an automatic generation from a description in formal language.

L'étape S210 du processus PROC décrit à la figure 2 est mise en œuvre par le module logiciel WS4 en coopération avec le module WA4, constituant l'API côté serveur 15 du module logiciel WS4. De même, l'étape S215 (respectivement S230) du processus PROC décrit à la figure 2 est mise en œuvre par le module logiciel WS5 (respectivement WS3) en coopération avec le module WA5 (respectivement WA3), constituant l'API côté serveur 15 du module logiciel WS5 (respectivement WS3).Step S210 of the PROC process described in FIG. 2 is implemented by the software module WS4 in cooperation with the module WA4, constituting the server-side API 15 of the software module WS4. Similarly, the step S215 (respectively S230) of the process PROC described in FIG. 2 is implemented by the software module WS5 (respectively WS3) in cooperation with the module WA5 (respectively WA3), constituting the server-side API 15 of the WS5 software module (respectively WS3).

Les modules logiciels WS1 à WS6 peuvent eux-mêmes être issus d'une génération automatique à partir d'une description en langage formel.The software modules WS1 to WS6 can themselves be derived from an automatic generation from a description in formal language.

Le processus PROC est lui-même mis en œuvre par un composant de type services Web, qui dans l'exemple décrit est le module logiciel WO. Une interface en langage WSDL (Web Service Description Language) permet d'invoquer l'exécution du processus PROC au même titre que celle d'un autre service Web. Le processus PROC mis en œuvre par le module logiciel WO correspond ainsi au processus décrivant les modalités de coopération entre les systèmes d'information des entités E1 et E2.The process PROC is itself implemented by a component of the Web services type, which in the example described is the software module WO. An interface in Web Service Description Language (WSDL) makes it possible to invoke the execution of the PROC process in the same way as that of another Web service. The PROC process implemented by the software module WO thus corresponds to the process describing the cooperation modalities between the information systems of the entities E1 and E2.

A partir d'une description en langage formel d'un processus peuvent être générés automatiquement un ou plusieurs composants logiciels (WO) aptes à mettre en œuvre le processus défini par cette description formelle.From a formal language description of a process, one or more software components (WO) can automatically be generated capable of implementing the process defined by this formal description.

Dans un mode de réalisation de l'invention, les entités E1 et E2 concernées par le processus de coopération, génèrent puis valident la description du processus. Le serveur 15 comprend de préférence des moyens d'édition, de validation et d'enregistrement de la description du processus. L'édition et la validation du processus s'effectue à partir d'un terminal en liaison de communication avec le serveur 15.In one embodiment of the invention, the entities E1 and E2 concerned by the cooperation process generate and validate the description of the process. The server 15 preferably comprises means for editing, validating and recording the description of the process. The editing and validation of the process is performed from a terminal in communication link with the server 15.

De préférence, le serveur 15 comprend des moyens pour vérifier si une entité est autorisée à éditer ou valider ladite description. Dans ce cas des données d'identification et/ou d'authentification de l'entité concernée sont transmises au serveur 15 qui identifie et/ou authentifie l'entité avant de lui donner accès à la description validée.Preferably, the server 15 comprises means for verifying whether an entity is authorized to edit or validate said description. In this case, the identification and / or authentication data of the entity concerned are transmitted to the server 15 which identifies and / or authenticates the entity before giving it access to the validated description.

En complément, la description validée est encryptée et/ou signée numériquement, de manière à ce qu'elle ne puisse être modifiée sans l'accord des entités qui l'ont approuvée ou uniquement par une entité autorisée. Dans ce cas, le serveur 15 vérifie la signature de ladite description avant de procéder à la génération des composants logiciels aptes à mettre en œuvre le processus défini par cette description formelle.In addition, the validated description is encrypted and / or digitally signed, so that it can not be modified without the consent of the entities that have approved it or only by an authorized entity. In this case, the server 15 verifies the signature of said description before proceeding to the generation of software components able to implement the process defined by this formal description.

Le serveur 15 joue ainsi le rôle de tiers de médiation et de confiance. Il est le dépositaire de la description validée et met en œuvre le processus tel que validé. En outre, comme décrit plus en détail plus loin, il comprend des moyens de contrôle et de sécurité garantissant que l'accès aux données d'un des systèmes d'information 10 ou 20, se fait exclusivement via les composants correspondant au processus tel que validé. De cette manière, l'accès par une autre entité à des données du système d'information d'une entité n'est autorisé que dans un cadre limité à un processus validé et approuvé par ces entités. En d'autres termes, les services Web WS1 à WS3 (respectivement WS4 à WS6) ne peuvent être invoqués que par un processus de traitement autorisé par l'entité E1 (respectivement l'entité E2).The server 15 thus plays the role of third party mediation and trust. It is the repository of the validated description and implements the process as validated. Furthermore, as described in more detail below, it comprises control and security means ensuring that access to the data of one of the information systems 10 or 20 is done exclusively via the components corresponding to the process such that valid. In this way, access by another entity to information in an entity's information system is permitted only within a framework limited to a process validated and approved by those entities. In other words, the web services WS1 to WS3 (respectively WS4 to WS6) can only be invoked by a processing process authorized by the entity E1 (respectively the entity E2).

Le serveur 15 comprend en outre un moteur de génération automatique capable de générer automatiquement le composant logiciel WO à partir de la description validée qu'il reçoit. Dès lors le serveur 15 est apte à traiter des requêtes pour l'exécution du processus correspondant.The server 15 further comprises an automatic generation engine capable of automatically generating the software component WO from the validated description it receives. Therefore the server 15 is able to process requests for the execution of the corresponding process.

Le serveur 15 après génération du module logiciel WO transmet une donnée d'identification et/ou d'authentification de ce module aux systèmes d'information 10 et 20 qui est stockée respectivement dans des tables T1 et T2. Les tables T1 et T2 définissent quels sont les programmes autorisés à invoquer les différents services Web mis en œuvre respectivement dans les systèmes d'information 10 et 20. Dans un mode de réalisation, ces tables associent à chaque identifiant de service Web les identifiants des programmes autorisés à invoquer le service Web. La table T1 (respectivement T2) est stockée dans le système d'information 10 (respectivement 20), de préférence au niveau d'une extension du middleware MW1 (respectivement MW2).The server 15 after generation of the software module WO transmits identification and / or authentication data of this module to the information systems 10 and 20 which is stored respectively in tables T1 and T2. Tables T1 and T2 define which programs are allowed to invoke the various Web services implemented respectively in information systems 10 and 20. In one embodiment, these tables associate each Web service identifier with program identifiers. allowed to invoke the web service. The table T1 (respectively T2) is stored in the information system 10 (respectively 20), preferably at the level of an extension of the middleware MW1 (respectively MW2).

L'activation du module WO est soit libre, soit réservée à une entité donnée. Dans ce deuxième cas, une identification de l'entité invoquant le module WO est transmise lors de cette activation.Activation of the WO module is either free or reserved for a given entity. In this second case, an identification of the entity invoking the WO module is transmitted during this activation.

Chaque requête émise par l'un des systèmes d'information 10 ou 20 et reçue par le serveur 15 déclenche l'exécution d'un processus particulier associé à la requête. En variante, un seul processus global est défini, capable de traiter toutes les requêtes et mettant en œuvre un sous-processus associé à la requête. Dans cette variante, le processus global comprend des conditions et des opérations de traitement relatives à la requête reçue: analyse de la requête reçue, obtention d'une identification du sous-processus pour lequel la requête a été émise, puis exécution du sous-processus correspondant. Le procédé selon l'invention est décrit plus détail par référence à la figure 3. Il correspond au traitement par le serveur 15 d'une requête émise par l'un des systèmes d'information 10 ou 20, en l'occurrence par le système d'information 20.Each request sent by one of the information systems 10 or 20 and received by the server 15 triggers the execution of a particular process associated with the request. As a variant, only one global process is defined, capable of processing all the requests and implementing a subprocess associated with the request. In this variant, the global process comprises conditions and processing operations relating to the received request: analysis of the received request, obtaining an identification of the sub-process for which the request has been issued, then execution of the sub-process corresponding. The method according to the invention is described in more detail with reference to FIG. 3. It corresponds to the processing by the server 15 of a request sent by one of the information systems 10 or 20, in this case by the system information 20.

A l'étape S100 une requête est émise par le système d'information 20 de l'entité E2, en vue d'exécuter le processus PROC sur les données du système d'information 10 de l'entité E1. Cette requête est transmise au module logiciel WO. Des données d'identification et/ou d'authentification (par exemple, login avec mot de passe) de l'entité E2 émettrice de la requête sont envoyées avec la requête.In step S100, a request is sent by the information system 20 of the entity E2, in order to execute the process PROC on the data of the information system 10 of the entity E1. This request is transmitted to the software module WO. Identification and / or authentication data (for example, login with password) of the sending E2 entity of the request are sent with the request.

A l'étape S110, le module logiciel WO reçoit la requête, vérifie l'identité de l'entité émettrice à partir des données d'authentification transmises, et, si l'entité émettrice E2 est autorisée à demander l'exécution du programme PROC, déclenche l'exécution du processus PROC. Dans le cas contraire, l'exécution du processus PROC n'est pas déclenchée et un message d'avertissement est envoyé à l'entité émettrice E2 .In step S110, the software module WO receives the request, verifies the identity of the issuing entity from the transmitted authentication data, and if the issuing entity E2 is authorized to request the execution of the program PROC. , triggers the execution of the PROC process. Otherwise, the execution of the PROC process is not triggered and a warning message is sent to the issuing entity E2.

A l'étape S120, le module logiciel WO exécute l'étape d'initialisation du processus PROC. Lors de la première exécution de l'étape S120, c'est l'étape S200 du processus PROC qui est exécutée. Comme décrit plus haut, cette étape S200 peut comporter l'attente d'un événement particulier conditionnant l'exécution de la suite du processus PROC.In step S120, the software module WO executes the initialization step of the PROC process. At the first execution of step S120, it is the step S200 of the PROC process that is executed. As described above, this step S200 may include waiting for a particular event conditioning the execution of the continuation of the PROC process.

A l'étape S125, le processus PROC mis en œuvre par le composant logiciel WO se poursuit. Si l'exécution du processus PROC est terminé, le procédé selon l'invention se poursuit à l'étape S160 finale. Sinon, le composant WO détermine s'il doit invoquer un composant logiciel WS1 à WS6 de traitement. Dans l'affirmative, le procédé selon l'invention se poursuit à l'étape S130. En l'occurrence dans l'exemple donné, l'étape suivante du processus PROC étant l'étape S210, nécessitant l'activation du composant logiciel WS1 , le procédé se poursuit à l'étape S130.In step S125, the process PROC implemented by the software component WO continues. If the execution of the PROC process is completed, the method according to the invention continues in the final step S160. Otherwise, the component WO determines whether to invoke a software component WS1 to WS6 processing. If so, the method according to the invention continues in step S130. In this case in the example given, the next step of the process PROC being the step S210, requiring the activation of the software component WS1, the method continues in step S130.

A l'étape S130, par exemple lors de l'exécution de l'étape S210 du processus PROC, le composant logiciel WO invoque le composant logiciel WS4 de traitement mettant en œuvre une opération de traitement ou de consultation des données du système d'information 10 de l'entité E1 .In step S130, for example during the execution of step S210 of the PROC process, the software component WO invokes the software component WS4 for processing implementing a processing operation or consultation of the information system data. 10 of the entity E1.

Le module logiciel WO émet une requête d'activation à destination du composant WS4, via son interface WA4. Cette requête est transmise sous forme de message conforme au protocole SOAP au module logiciel destinataire via les parties MW et MW1 du middleware. Cette requête comprend des données d'identification et/ou d'authentification du composant logiciel WO. Ces données peuvent être des jetons de sécurité, par exemple des certificats ou clefs d'infrastructure de sécurité.The software module WO issues an activation request to the component WS4 via its interface WA4. This request is transmitted in the form of a SOAP protocol message to the destination software module via the MW and MW1 parts of the middleware. This request includes identification and / or authentication data of the software component WO. This data can be security tokens, for example certificates or security infrastructure keys.

La transmission des requêtes entre composants s'effectue de préférence dans un environnement sécurisé. Un mécanisme de sécurité utilisant une combinaison de clé publique et clé privée conformément à la norme X509 peut être utilisé pour crypter la requête au moyen d'une clé privée avant sa transmission via le middleware ou le réseau, la clé publique de décryptage étant connue de l'environnement d'exécution des composants de manière à ce que la requête puisse être décryptée au moyen de cette clé publique avant traitement par le composant destinataire.The transmission of requests between components is preferably done in a secure environment. A security mechanism using a combination of public key and private key in accordance with the X509 standard can be used to encrypt the request by means of a private key prior to its transmission via the middleware or the network, the public key of decryption being known from the component execution environment so that the request can be decrypted by means of this public key before processing by the destination component.

A l'étape S135, suite à l'émission de la requête d'activation, le composant WS4 recevant le message, identifie et authentifie le module logiciel WO émetteur de la requête à partir des données d'identification et/ou d'authentification reçues. En cas d'authentification du module logiciel émetteur de la requête, le composant WS4 détermine, à partir de la table de données T1 de référence gérée par le système d'information 10, si le composant WO authentifié est autorisé à invoquer le module WS4.In step S135, following the transmission of the activation request, the WS4 component receiving the message identifies and authenticates the WO software module issuing the request from the identification and / or authentication data received. . In case of authentication of the software module issuing the request, the component WS4 determines, from the reference data table T1 managed by the information system 10, whether the authenticated component WO is authorized to invoke the module WS4.

Des technologies connues adaptées aux services Web peuvent être utilisées pour l'authentification du composant WO, par exemple l'architecture Web Service Security (WS- Security) utilisant divers mécanismes de sécurité: couple identifiant/mot de passe, méthode du jeton de sécurité et celle des certificats notamment. Cette technologie permet d'authentifier l'émetteur du message SOAP à partir des données du message. Plus précisément, elle définit les données à insérer dans un message SOAP permettant la vérification des droits d'accès correspondant à ces différents mécanismes de sécurité.Known technologies adapted to web services can be used for the authentication of the WO component, for example the Web Service Security (WS-Security) architecture using various security mechanisms: identifier / password pair, security token method and that of the certificates in particular. This technology makes it possible to authenticate the sender of the SOAP message from the data of the message. More precisely, it defines the data to be inserted in a SOAP message allowing the verification of the access rights corresponding to these various security mechanisms.

Par ailleurs il est possible d'obtenir l'adresse de l'émetteur d'un message SOAP des données de la couche transport HTTP via laquelle ce message a été transporté. Une telle adresse peut être utilisée pour effectuer les opérations d'authentification en combinaison avec les données du message.Furthermore, it is possible to obtain the address of the sender of a SOAP message of the data of the HTTP transport layer via which this message has been transported. Such an address can be used to perform the authentication operations in combination with the message data.

L'authentification peut aussi être réalisée au niveau du middleware véhiculant le message ou de préférence au niveau de l'environnement d'exécution des services Web (par exemple Axis). Dans un tel environnement, il est possible de définir des traitements à effectuer sur un message SOAP avant l'exécution du service Web destinataire du message.Authentication can also be carried out at the level of the middleware carrying the message or preferably at the level of the execution environment of the Web services (for example Axis). In such an environment, it is possible to define processing to be performed on a SOAP message before executing the message receiving web service.

En alternative, l'authentification et l'autorisation d'accès est effectuée non pas par les composants WS1 à WS6 mis en œuvre dans le système d'information 10 ou 20, mais par les composants WA1 à WA6, mis en œuvre dans le serveur 15 et servant d'interface respectivement aux composants WS1 à WS6. Dans ce cas, le serveur 15 comprend une table T stockant les informations des tables T1 et T2, table qui est stockée au niveau du middleware MW du serveur 15. Cette alternative suppose que le serveur fournisse un accès sécurisé aux données de ces tables de manière à garantir l'intégrité des données qui y sont stockées.As an alternative, the authentication and access authorization is carried out not by the components WS1 to WS6 implemented in the information system 10 or 20, but by the components WA1 to WA6, implemented in the server. And serving as an interface respectively to the components WS1 to WS6. In this case, the server 15 comprises a table T storing the information of the tables T1 and T2, which table is stored at the level of the middleware MW of the server 15. This alternative assumes that the server provides secure access to the data of these tables so to guarantee the integrity of the data stored there.

En cas d'autorisation, le procédé selon l'invention se poursuit à l'étape S140. Dans le cas contraire, un message d'erreur est retourné au composant WO qui à son tour transmet un message d'erreur au système d'information 20 de l'entité E2 émettrice de la requête de demande de traitement. Le procédé se termine à l'étape S160.In case of authorization, the method according to the invention continues in step S140. In the opposite case, an error message is returned to the component WO, which in turn transmits an error message to the information system 20 of the entity E2 transmitting the request for processing request. The process ends in step S160.

L'exécution et l'activation du composant WO de pilotage du processus se fait exclusivement à partir du serveur 15. C'est grâce à ce module, généré à partir de la description validée, que le serveur est en mesure d'assurer l'usage exclusif des données dans le contexte d'un processus de traitement donné, en garantissant que l'accès aux données se fait uniquement pour des opérations de traitement faisant partie d'un processus correspondant à la description validée.The execution and activation of the WO component of the process control is done exclusively from the server 15. It is thanks to this module, generated from the validated description, that the server is able to provide the exclusive use of data in the context of a given processing process, ensuring that access to the data is only for processing operations that are part of a process corresponding to the validated description.

A l'étape S140, le module logiciel WS4 invoqué émet une requête d'interrogation du système d'information 10 et de la base de données 5 à travers le réseau R1 , afin d'obtenir les données requises pour l'exécution de l'opération de traitement qui lui est associée.In step S140, the invoked WS4 software module issues a query to interrogate the information system 10 and the database 5 through the network R1, in order to obtain the data required for the execution of the processing operation associated with it.

A l'étape S150, le module logiciel WS4 exécute l'opération de traitement qui lui est associée à partir des données obtenues puis retourne au module WO les données résultant de l'exécution de cette opération.In step S150, the software module WS4 executes the processing operation associated with it from the data obtained and then returns to the module WO the data resulting from the execution of this operation.

A l'étape S160 le module logiciel WO termine l'exécution du processus PROC et retourne au système d'information 20 de l'entité E2 les données résultant de l'exécution du processus PROC.In step S160, the software module WO terminates the execution of the process PROC and returns to the information system 20 of the entity E2 the data resulting from the execution of the process PROC.

Les étapes S130 à S150 sont à nouveau exécutées à chaque fois que le composant logiciel WO invoque un nouveau module logiciel WS1 à WS6 de traitement et d'accès aux données, notamment lors de l'exécution de l'étape S210, S215, S230 du processus PROC.Steps S130 to S150 are executed again each time that the software component WO invokes a new software module WS1 to WS6 for data processing and access, in particular during the execution of the step S210, S215, S230 of the PROC process.

Le dispositif ou le procédé, selon l'invention permet l'automatisation de l'exécution de processus de coopération entre plusieurs entreprises partenaires dans des contextes particulièrement dynamiques nécessitant des échanges d'information rapides, voire temps réel.The device or method, according to the invention allows the automation of the execution of cooperation processes between several partner companies in particularly dynamic contexts requiring rapid exchange of information, or real time.

Son intérêt devrait s'accroître avec le déploiement de solution technologiques facilitant la mise à jour en temps réel de données d'un système d'information, notamment dans le cas de la gestion de stocks au moyen d'étiquettes RFID.Its interest should increase with the deployment of technological solutions facilitating the real-time updating of data of an information system, especially in the case of stock management using RFID tags.

L'invention a été décrite dans le contexte d'entreprise dans le domaine des produits manufacturés. Les secteurs d'application de l'invention peuvent cependant être très variés.The invention has been described in the context of enterprise in the field of manufactured products. The fields of application of the invention can, however, be very varied.

Le secteur pharmaceutique donne un exemple de d'entité E2 (les pharmacies) distribuant des produits fournis par des entités E1 (les laboratoires/industries) avec des gestions de stocks internes à E1 et E2 et des connaissances sur le marché distribuées au niveau des entités E2. Les secteurs High-tech ou de l'industrie automobile sont d'autres exemples de secteurs travaillant de plus en plus en flux tendu avec des stocks réduits au niveau de E2.The pharmaceutical sector provides an example of an E2 entity (pharmacies) distributing products provided by E1 entities (laboratories / industries) with E1 and E2 internal inventory management and distributed market intelligence at the entity level. E2. The high-tech or automotive sectors are other examples of sectors working more and more in just-in-time with reduced stocks at the level of E2.

Selon une implémentation préférée, les différentes étapes du procédé selon l'invention sont exécutées au moyen d'instructions de programmes d'ordinateurs.According to a preferred implementation, the various steps of the method according to the invention are executed by means of computer program instructions.

Ces étapes sont ainsi de préférence mises en œuvre par le ou les processeurs du serveur 15 et des serveurs 10 ou 20, processeur(s) faisant appel à des programmes ou sous- programmes conçus pour l'exécution des différentes étapes de ce procédé.These steps are thus preferably implemented by the processor (s) of the server 15 and servers 10 or 20, processor (s) using programs or subroutines designed for the execution of the various steps of this method.

En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en œuvre dans un ordinateur ou par un processeur de données, ce programme comportant des instructions adaptées à la mise en œuvre d'un procédé de traitement de donné selon l'invention.Accordingly, the invention also relates to a computer program on an information medium, this program being capable of being implemented in a computer or by a data processor, this program comprising instructions adapted to the implementation of a data processing method according to the invention.

Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other form desirable shape.

L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus.The invention also relates to a computer-readable information medium, comprising instructions of a computer program as mentioned above.

Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy dise) ou un disque dur.The information carrier may be any entity or device capable of storing the program. For example, the medium may comprise storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, for example a floppy disk or a disk. hard.

D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.On the other hand, the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The program according to the invention can be downloaded in particular on an Internet type network.

Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Alternatively, the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.

Claims

REVENDICATIONS 1. Système de traitement de données comprenant un serveur (15) de médiation entre une première entité dite entité cliente (E2) et une deuxième entité dite entité fournisseur (E1 ), ledit serveur comprenant des moyens d'exécution de programme pour exécuter, sur requête en provenance de l'entité cliente, un programme (WO) mettant en œuvre un processus (PROC) prédéfini de traitement, ledit programme (WO) étant apte à déclencher, lors de l'exécution dudit processus, une émission à travers une liaison de communication d'au moins une requête d'activation d'au moins un module de traitement (WS1 -WS6) d'un serveur de l'entité fournisseur afin d'exécuter au moins une opération de traitement sur au moins une partie des données d'au moins une base de données (5) accessible via le serveur de l'entité fournisseur, le système comprenant des moyens (T1 , T2) de contrôle conçus pour, en cas d'authentification dudit programme, déterminer si ledit programme (WO) est autorisé à activer ledit module de traitement (WS1 -WS6) et pour, en cas d'absence autorisation, inhiber l'exécution de ladite au moins une opération de traitement.A data processing system comprising a server (15) mediating between a first entity called client entity (E2) and a second entity called provider entity (E1), said server comprising program execution means for executing, on query from the client entity, a program (WO) implementing a predefined process (PROC) for processing, said program (WO) being able to trigger, during the execution of said process, a transmission through a link for communicating at least one activation request of at least one processing module (WS1 -WS6) of a server of the provider entity to execute at least one processing operation on at least a part of the data at least one database (5) accessible via the server of the supplier entity, the system comprising control means (T1, T2) designed for, in case of authentication of said program, determining whether said program (WO ) is self it is possible to activate said processing module (WS1 -WS6) and, in the absence of authorization, to inhibit the execution of said at least one processing operation. 2. Système selon la revendication 1 , ledit serveur de médiation comprenant des moyens de génération logicielle aptes à générer ledit programme à partir d'une description en langage formel dudit processus, ladite description étant définie par référence à au moins un module choisi parmi une pluralité de modules de traitement du serveur de l'entité fournisseur activables indépendamment les uns des autres.2. System according to claim 1, said mediation server comprising software generation means able to generate said program from a description in formal language of said process, said description being defined by reference to at least one module selected from a plurality processor modules of the provider entity server that can be activated independently of one another. 3. Système selon la revendication 2, ledit serveur de médiation comprenant des moyens permettant l'édition et la validation de ladite description à partir d'un terminal en communication avec ledit serveur.3. System according to claim 2, said mediation server comprising means for editing and validation of said description from a terminal in communication with said server. 4. Système selon la revendication 3, ledit serveur de médiation comprenant des moyens pour vérifier si une entité est autorisée à éditer ou valider ladite description.4. System according to claim 3, said mediation server comprising means for verifying whether an entity is authorized to edit or validate said description. 5. Système selon l'une quelconque des revendications précédentes, ledit serveur de médiation comprenant des moyens pour vérifier si une entité est autorisée à invoquer l'exécution dudit programme.5. System according to any one of the preceding claims, said mediation server comprising means for verifying whether an entity is authorized to invoke the execution of said program. 6. Serveur (15) de médiation entre une entité cliente (E2) et une entité fournisseur (E1 ), ledit serveur de médiation comprenant des moyens d'exécution de programme pour exécuter, sur requête en provenance de l'entité cliente, un programme (WO) mettant en œuvre un processus (PROC) prédéfini de traitement, ledit programme (WO) étant apte à déclencher, lors de l'exécution dudit processus, une émission à travers une liaison de communication d'au moins une requête d'activation d'au moins un module de traitement (WS1 -WS6) d'un serveur de l'entité fournisseur afin d'exécuter au moins une opération de traitement sur au moins une partie des données d'au moins une base de données (5) accessible via le serveur de l'entité fournisseur, ledit serveur de médiation comprenant des moyens (Tl , T2) de contrôle conçus pour, en cas d'authentification dudit programme, déterminer si ledit programme (WO) est autorisé à activer ledit module de traitement (WS1 -WS6) et pour, en cas d'absence autorisation, inhiber l'exécution de ladite au moins une opération de traitement.6. A mediation server (15) between a client entity (E2) and a provider entity (E1), said mediation server comprising program execution means for executing, on request from the client entity, a program (WO) implementing a predefined processing process (PROC), said program (WO) being able to trigger, during the execution of said process, a transmitting, via a communication link, at least one activation request of at least one processing module (WS1 -WS6) of a server of the provider entity in order to execute at least one processing operation on at least one at least part of the data of at least one database (5) accessible via the server of the supplier entity, said mediation server comprising control means (T1, T2) designed for, in case of authentication of said program determining whether said program (WO) is authorized to activate said processing module (WS1 -WS6) and, in the absence of authorization, inhibiting the execution of said at least one processing operation. 7. Serveur (10, 20) de traitement de données accédant à au moins une base (5, 25) de données, ledit serveur de traitement étant apte à communiquer à travers une liaison de communication avec un serveur (15) de médiation entre une entité cliente (E2) et une entité fournisseur (E1 ), ledit serveur de traitement comprenant au moins un module de traitement (WS1 -WS6), conçu pour exécuter au moins une opération de traitement sur au moins une partie desdites données de ladite base de données et activable par requête à partir du serveur (15) de médiation au moyen d'un programme (WO) mettant en œuvre un processus (PROC) prédéfini de traitement, ledit serveur de traitement comprenant des moyens (T1 , T2) de contrôle pour, suite à l'émission par ledit programme d'une requête d'activation d'un module de traitement, vérifier si ledit programme est autorisé à activer ledit module de traitement (WS1 -WS6) et pour, en cas d'absence autorisation, inhiber l'exécution de ladite au moins une opération de traitement.A data processing server (10, 20) accessing at least one database (5, 25) of data, said processing server being able to communicate through a communication link with a server (15) mediating between a client entity (E2) and a provider entity (E1), said processing server comprising at least one processing module (WS1 -WS6), designed to execute at least one processing operation on at least a part of said data of said database. data and queryable from the mediation server (15) by means of a program (WO) implementing a predefined processing process (PROC), said processing server comprising control means (T1, T2) for , following the emission by said program of a request for activation of a processing module, checking whether said program is authorized to activate said processing module (WS1 -WS6) and, in the absence of authorization, inhibit lad performance ite at least one processing operation. 8. Procédé de traitement de données incluses dans au moins une base de données accessible via un serveur (10, 20) de traitement de données, ledit procédé comprenant au moins,A method of processing data included in at least one database accessible via a data processing server (10, 20), said method comprising at least, - une étape d'exécution par un serveur de médiation d'un programme (WO) mettant en œuvre un processus prédéfini de traitement, ladite étape d'exécution étant destinée à être exécutée suite à la réception par le serveur de médiation d'une requête en provenance d'une entité cliente,a step of execution by a mediation server of a program (WO) implementing a predefined process of processing, said execution step being intended to be executed following the reception by the mediation server of a request from a client entity, - une étape de déclenchement par ledit programme (WO), lors de l'exécution dudit processus, de l'émission à travers une liaison de communication d'au moins une requête d'activation d'au moins un module de traitement (WS1 -WS6) du serveur de traitement afin d'exécuter au moins une opération de traitement sur au moins une partie desdites données,a triggering step by said program (WO), during the execution of said process, of the transmission through a communication link of at least one activation request of at least one processing module (WS1 - WS6) of the processing server to execute at least one processing operation on at least a portion of said data, - une étape de contrôle pour déterminer si le programme (WO) à l'origine de la requête d'activation est autorisé à activer ledit module de traitement (WS1 -WS6), - une étape de déclenchement de l'exécution de ladite au moins une opération de traitement, ladite étape de déclenchement n'étant exécutée qu'en cas d'autorisation.a control step for determining whether the program (WO) initiating the activation request is authorized to activate said processing module (WS1 -WS6), a step of triggering the execution of said at least one processing operation, said triggering step being executed only in the case of authorization. 9. Procédé selon la revendication 8 comprenant une étape d'authentification du programme à l'origine de la requête d'activation, ladite étape de contrôle n'étant exécutée qu'en cas d'authentification.9. The method of claim 8 comprising a step of authenticating the program at the origin of the activation request, said checking step being executed only in case of authentication. 10. Support de données sur lequel a été mémorisée au moins une série d'instructions de code de programme pour l'exécution d'au moins une étape du procédé conforme à l'une des revendications 8 à 9. Data carrier on which at least one set of program code instructions has been stored for performing at least one step of the method according to one of claims 8 to 9.
PCT/FR2007/051016 2006-03-28 2007-03-26 Method and system for controlling access to the data in a database Ceased WO2007110545A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0651072 2006-03-28
FR0651072 2006-03-28

Publications (2)

Publication Number Publication Date
WO2007110545A2 true WO2007110545A2 (en) 2007-10-04
WO2007110545A3 WO2007110545A3 (en) 2007-11-15

Family

ID=36843264

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2007/051016 Ceased WO2007110545A2 (en) 2006-03-28 2007-03-26 Method and system for controlling access to the data in a database

Country Status (1)

Country Link
WO (1) WO2007110545A2 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553242A (en) * 1993-11-03 1996-09-03 Wang Laboratories, Inc. Client/server connection sharing
US6148402A (en) * 1998-04-01 2000-11-14 Hewlett-Packard Company Apparatus and method for remotely executing commands using distributed computing environment remote procedure calls
US20050182966A1 (en) * 2004-02-17 2005-08-18 Duc Pham Secure interprocess communications binding system and methods
US7665064B2 (en) * 2004-05-14 2010-02-16 Gt Software, Inc. Systems and methods for web service function, definition, implementation, and/or execution

Also Published As

Publication number Publication date
WO2007110545A3 (en) 2007-11-15

Similar Documents

Publication Publication Date Title
AU2017320341B2 (en) Dynamic access control on blockchain
US11870847B2 (en) Decentralized data flow valuation and deployment
US20210218710A1 (en) Security management for networked client devices using a distributed ledger service
EP3343425A1 (en) System and method for the creation and management of decentralized authorizations for connected objects
GB2609872A (en) Security management for networked client devices using a distributed ledger service
US20190386968A1 (en) Method to securely broker trusted distributed task contracts
Mahmood et al. Blockchain technology and internet of things: review, challenge and security concern
US12086272B2 (en) Systems and methods for conducting blockchain actions based on network mappings of self-executing program characteristics
CN113469811A (en) Block chain transaction processing method and device
CN110599144B (en) Network access method and device for blockchain nodes
EP4199411B1 (en) Method for determining an authorization for implementing a composite resource, corresponding blockchain, devices and program
US9355232B2 (en) Methods for governing the disclosure of restricted data
EP1051009A1 (en) Virtual server providing security services
EP1506480B1 (en) Method of controlling access to cryptographic resources and a computer platform and software module which can be used to perform said method
WO2007110545A2 (en) Method and system for controlling access to the data in a database
EP3520008B1 (en) Rights delegation to a deputy
CN118626056A (en) A method and device for generating business services
FR3141301A1 (en) Method for processing a request for execution of a service in a communications network, method for validating the request, intermediate entity, validation entity, corresponding system and computer program
FR3141021A1 (en) Method for implementing a service in a service chain and associated electronic device
CN116868165A (en) Systems and methods for facilitating authorization of computer program installations in open industrial ecosystems
CN115268939A (en) Application issuing method and device, computer equipment and storage medium
FR2840135A1 (en) Method of performing cryptographic functions in a computer application, used in electronic signatures, time stamping etc, uses a cryptographic toolbox which can be used by non-experts in cryptography
EP3948596B1 (en) Method for running secure code, corresponding devices, system and programs
WO2024120945A1 (en) Authorisation mechanism for the use of a software method with source code protection
WO2025162892A1 (en) Method for managing the calling of an application programming interface by a client

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: 07731828

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07731828

Country of ref document: EP

Kind code of ref document: A2