FR2973534A1 - Method for optimizing searches on data accessible via simple object access protocol-web service definition language web service, involves translating Meta-SQL query to build SQL query on tables in relational database and execute SQL query - Google Patents

Method for optimizing searches on data accessible via simple object access protocol-web service definition language web service, involves translating Meta-SQL query to build SQL query on tables in relational database and execute SQL query Download PDF

Info

Publication number
FR2973534A1
FR2973534A1 FR1152566A FR1152566A FR2973534A1 FR 2973534 A1 FR2973534 A1 FR 2973534A1 FR 1152566 A FR1152566 A FR 1152566A FR 1152566 A FR1152566 A FR 1152566A FR 2973534 A1 FR2973534 A1 FR 2973534A1
Authority
FR
France
Prior art keywords
web service
sql query
request
tables
query
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1152566A
Other languages
French (fr)
Other versions
FR2973534B1 (en
Inventor
Olivier Grosset-Grange
Pierre Bernot
Francois Larrieu
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.)
Click & Decide
Original Assignee
Click & Decide
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 Click & Decide filed Critical Click & Decide
Priority to FR1152566A priority Critical patent/FR2973534B1/en
Publication of FR2973534A1 publication Critical patent/FR2973534A1/en
Application granted granted Critical
Publication of FR2973534B1 publication Critical patent/FR2973534B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The method involves obtaining a web service definition language document of a web service (100), and creating tables (200) in a relational database. A Meta-SQL query is constructed (250). Input parameters and operations to be performed are defined and validated (275). The Meta-SQL query is translated (300) to construct and execute a Simple Object Access Protocolrequest to the web service. Response from the web service is collected (400) and stored in the tables. The SQL query is translated (500) to construct an SQL query on the tables, and to execute the SQL query. The request is expressed by pre-defined writing rules using SQL or JavaScript Object Notationlanguage.

Description

La présente invention appartient au domaine de l'informatique et en particulier aux recherches sur des données accessibles via un service web SOAP-WSDL (acronyme de "Simple Object Access Protocol - Web Service Definition Language"). The present invention belongs to the field of computing and in particular to research on data accessible via a web service SOAP-WSDL (acronym for "Simple Object Access Protocol - Web Service Definition Language").

Préambule Les services web représentent un mécanisme de communication entre applications distantes, à travers un réseau indépendant de tout langage de programmation et de toute plate forme d'exécution. Les services web sont utilisés pour transmettre des données informatiques à travers un réseau informatique d'un ordinateur à un autre en utilisant notamment les protocoles HTTP et/ou HTTPS comme moyen de transport. Ces services web utilisent une syntaxe basée sur la notation XML (eXtensible Markup Language) qui permet de décrire les noms de fonctions distantes, les paramètres d'entrée et résultat de ces fonctions distantes. Ces services web organisent les mécanismes d'appels et de réponses de ces fonctions distantes. Les standards de base utilisés par les services web sont le protocole SOAP ainsi que le formalisme WSDL normalisés par le W3C (World Wide Web Consortium). Preamble Web services represent a communication mechanism between remote applications, through a network independent of any programming language and any execution platform. Web services are used to transmit computer data through a computer network from one computer to another using, in particular, HTTP and / or HTTPS as a means of transport. These web services use an XML Markup Language (eXtensible Markup Language) syntax to describe remote function names, input and output parameters for these remote functions. These web services organize the call and answer mechanisms of these remote functions. The basic standards used by web services are the SOAP protocol and WSDL formalism standardized by the W3C (World Wide Web Consortium).

Le protocole SOAP est un protocole Internet qui permet la communication entre applications pour l'accès aux services web. Le formalisme WSDL est une notation standard pour la description d'un service web. Un avantage d'un service web est d'une part son indépendance vis à vis des langages de programmation et de toute plateforme d'exécution et d'autre part sa facilité de fonctionnement due à l'utilisation du protocole HTTP (et/ou HTTPS) permettant de passer au travers de nombreux pare-feux sans nécessiter de changements sur les règles de filtrage. On comprend donc que beaucoup de données dans le monde informatique sont disponibles par ce biais. Un inconvénient d'un service web est qu'il présente des réponses formatées selon ce qui était prévu lors de sa réalisation (codage). Un filtrage de ces réponses, un ordre, un groupement, et/ou une opération ne peut s'effectuer que si un ou plusieurs paramètres d'entrée le permettent. De part cet inconvénient, l'utilisateur d'un service web ne peut, en général, pas obtenir directement la réponse optimale c'est à dire filtrée, ordonnée et/ou regroupée à ses besoins, étant limité par la faiblesse des interrogations pouvant être transmises au service web. Prenons comme exemple un service web qui fournit la liste des salariés d'une entreprise (Nom, Prénom, Date d'entrée dans l'entreprise) avec comme seul paramètre d'entrée non obligatoire le nom d'un salarié et un utilisateur qui recherche uniquement les salariés, triés selon l'ordre alphabétique Prénom, Nom dont la date d'entrée est comprise entre une date précise et une autre date. On comprend que l'appel au service web ne lui fournira pas directement la réponse exacte à son besoin. Il faudra que l'utilisateur récupère l'ensemble des données, supprime les lignes ne répondant pas à la sélection choisie puis trie les lignes restantes en les ordonnant selon l'ordre alphabétique du prénom et du nom. SOAP is an Internet protocol that allows communication between applications for access to web services. The WSDL formalism is a standard notation for the description of a web service. An advantage of a web service is on the one hand its independence with regard to the programming languages and of any platform of execution and on the other hand its ease of operation due to the use of the protocol HTTP (and / or HTTPS ) to pass through many firewalls without requiring changes to the filtering rules. We understand that a lot of data in the computer world are available through this. A disadvantage of a web service is that it presents formatted responses according to what was planned during its implementation (coding). A filtering of these responses, an order, a grouping, and / or an operation can only be performed if one or more input parameters allow it. Due to this disadvantage, the user of a web service can not, in general, directly obtain the optimal response that is filtered, ordered and / or grouped to his needs, being limited by the weakness of the interrogations that can be transmitted to the web service. For example, consider a web service that provides a list of employees in a company (Last Name, Last Name, Company Entry Date) with the only non-mandatory entry parameter, the name of an employee and a user who is looking for only employees, sorted alphabetically First name, whose entry date is between a specific date and another date. We understand that the call to the web service will not directly provide the exact answer to his need. It will be necessary for the user to recover all the data, delete the lines that do not correspond to the chosen selection and then sort the remaining lines by ordering them according to the alphabetical order of the first name and the name.

Objectifs de l'invention Le problème qui se pose est donc de proposer un procédé d'interrogation de données accessibles uniquement via un service web qui fournisse automatiquement à un utilisateur une réponse conforme à ses besoins qui peuvent être complexes, ce procédé fonctionnant pour tout service web. OBJECTS OF THE INVENTION The problem that arises is therefore to propose a method of querying data accessible only via a web service which automatically provides a user with a response that meets his or her needs which may be complex, this method operating for any service. web.

Exposé de l'invention La présente invention vise un procédé d'optimisation de recherche accessible à un utilisateur d'au moins un service web SOAP-WSDL quelconque, ledit accès étant réalisé à travers un système informatique, ledit système informatique pouvant accéder à au moins une base de données relationnelle et audit service web SOAP-WSDL concerné, cet utilisateur ayant défini une requête sur des données accessibles par ce service web SOAP- WSDL. Le procédé utilise des règles d'écriture préalablement définies, permettant d'exprimer la requête à effectuer, et comporte des étapes suivantes : - de validation des paramètres d'entrée du procédé constitués d'une part de ou des adresse(s) Internet permettant d'accéder au(x) document(s) WSDL du ou des service(s) web, - de création de tables dans une base de données relationnelle, - construction d'une méta-requête SQL impliquant à la fois l'appel à la ou les méthode(s) du ou des service(s) web (SOAP), ainsi que les tables construites précédemment (SQL), - présentation à l'utilisateur de la requête afin qu'il définisse ses paramètres d'entrée ainsi que les opérations qu'il souhaite réaliser sur les données retournées ; puis validation de cette requête, - exécution d'une ou plusieurs requête(s) SOAP à effectuer sur le ou les service(s) web, - de récupération de la ou des réponse(s) du ou de(s) service(s) web et de stockage de cette ou ces réponse(s) dans les tables construites précédemment, - exécution d'une requête SQL à effectuer sur les tables construites précédemment, - de création de la réponse du procédé, - de destruction des tables construites précédemment. DISCLOSURE OF THE INVENTION The present invention aims at a search optimization method accessible to a user of at least one SOAP-WSDL web service of any kind, said access being realized through a computer system, said computer system being able to access at least a relational database and said concerned SOAP-WSDL web service, this user having defined a request on data accessible by this SOAP-WSDL web service. The method uses previously defined writing rules, making it possible to express the request to be made, and comprises the following steps: - validation of the input parameters of the process consisting on the one hand of or Internet addresses (s) allowing to access the WSDL document (s) of the web service (s), - to create tables in a relational database, - to construct a SQL meta-query involving both the call to the method (s) of the web service (s) (SOAP), as well as the tables previously constructed (SQL), - presentation to the user of the request so that he / she defines his / her input parameters as well as the operations it wishes to perform on the returned data; then validation of this request, - execution of one or more request (s) SOAP to be made on the service (s) web, - recovery of the response (s) of the service (s) (s) ) web and storage of this or these response (s) in the previously built tables, - execution of an SQL query to be performed on previously built tables, - creation of the process response, - destruction of tables previously built .

L'utilisation d'une base de données dans le procédé permet d'utiliser la puissance du langage SQL pour obtenir un résultat conforme au besoin de l'utilisateur du procédé. On rappelle que dans le domaine de l'informatique, la manipulation de données informatiques c'est à dire une extraction spécifique, un tri un regroupement, est généralement effectuée d'une manière optimale en interrogeant une base de données relationnelle avec un langage puissant appelé langage SQL (de l'anglais Structured Query Language). The use of a database in the process makes it possible to use the power of the SQL language to obtain a result that meets the needs of the user of the process. It is recalled that in the field of computer science, the manipulation of computer data, that is to say a specific extraction, a sorting a grouping, is generally performed optimally by querying a relational database with a powerful language called SQL (Structured Query Language) language.

Selon un mode préféré de réalisation, les règles d'écriture permettant d'exprimer la requête à effectuer utilisent le langage SQL. According to a preferred embodiment, the writing rules making it possible to express the request to be made use the SQL language.

Selon un autre mode préféré de réalisation, les règles d'écriture permettant d'exprimer la requête à effectuer utilisent le langage JSON (JavaScript Oriented Notation). According to another preferred embodiment, the writing rules making it possible to express the request to be made use the JSON (JavaScript Oriented Notation) language.

Selon un autre mode de réalisation, les règles d'écriture sont codées avec un langage permettant d'exprimer toute requête. According to another embodiment, the writing rules are coded with a language making it possible to express any request.

Selon un mode préféré de réalisation, l'étape de création de tables dans la base de données relationnelle suit une logique pour le modèle de données de création de ces tables permettant de faire automatiquement la relation entre une entité de sortie dans le document WSDL et une colonne dans une table. On comprend l'intérêt de la logique de construction du modèle de données qui est de rendre le procédé automatique et indépendant du service web. According to a preferred embodiment, the step of creating tables in the relational database follows a logic for the creation data model of these tables to automatically make the relationship between an output entity in the WSDL document and a column in a table. We understand the interest of the construction logic of the data model which is to make the process automatic and independent of the web service.

Selon un mode préféré de réalisation, la réponse du procédé est fournie sous forme d'un fichier csv. On comprend qu'il suffit de lire ce fichier csv avec un tableur classique pour visualiser la réponse. Selon un mode préféré de réalisation, la réponse du procédé est fournie sous forme d'un fichier XML. Le standard XML étant très utilisé dans le monde informatique, on comprend qu'une réponse formatée par ce standard peut être pertinente. 25 Présentation des figures Les caractéristiques et avantages de l'invention seront mieux appréciés grâce à la description qui suit, description qui expose les caractéristiques de l'invention au travers d'un exemple non limitatif d'application. 30 La description s'appuie sur les figures annexées dans lesquelles : - la figure 1 représente schématiquement un exemple d'environnement informatique mis en oeuvre dans un mode particulier du procédé objet de la présente invention,20 - la figure 2 représente sous forme d'un logigramme, des étapes mises en oeuvre dans une mode particulier de réalisation du procédé objet de la présente invention. According to a preferred embodiment, the response of the method is provided in the form of a csv file. We understand that it is sufficient to read this file csv with a conventional spreadsheet to view the answer. According to a preferred embodiment, the response of the method is provided in the form of an XML file. The XML standard is widely used in the computer world, it is understood that a response formatted by this standard may be relevant. DESCRIPTION OF THE FIGURES The characteristics and advantages of the invention will be better appreciated thanks to the description which follows, a description which sets out the characteristics of the invention through a nonlimiting example of application. The description is based on the appended figures in which: FIG. 1 schematically represents an exemplary computer environment implemented in a particular mode of the method which is the subject of the present invention; FIG. 2 represents in the form of FIG. a logic diagram, steps implemented in a particular embodiment of the method object of the present invention.

Description détaillée d'un mode de réalisation de l'invention Comme on le voit sur la figure 1, un procédé d'optimisation de recherche selon l'invention peut être mise en oeuvre dans une application 1 hébergée dans un serveur d'application 2 accessible par un utilisateur-client 3 directement ou par Internet ou Intranet, via une interface utilisateur 4. Ce serveur d'application 2 doit pouvoir : - d'une part, accéder, par exemple via HTTP ou HTTPS, à un service web 5 que l'utilisateur-client 3 souhaite interroger, et, - d'autre part, accéder à une base de données 6 situé dans un SGBD local ou distant avec des droits d'accès adéquats de création, suppression, mise à jour de tables. Il peut y avoir plusieurs utilisateur-clients 3, de même qu'il peut y avoir plusieurs serveurs d'application 2 hébergeant l'application 1, qui accèdent à la même base de données 6. DETAILED DESCRIPTION OF ONE EMBODIMENT OF THE INVENTION As seen in FIG. 1, a search optimization method according to the invention can be implemented in an application 1 hosted in an accessible application server 2. by a user-client 3 directly or via the Internet or intranet, via a user interface 4. This application server 2 must be able to: - first, access, for example via HTTP or HTTPS, to a web service 5 that user-client 3 wishes to interrogate, and, secondly, to access a database 6 located in a local or remote DBMS with appropriate access rights for creating, deleting, updating tables. There may be several user-clients 3, as well as there may be several application servers 2 hosting application 1, which access the same database 6.

Comme on le voit sur la figure 1, l'application 1 utilise comme paramètres d'entrée, fournis par l'interface 4 : - une adresse Internet 7 permettant d'obtenir le document WSDL 8 du service web 5 que l'utilisateur-client 3 souhaite interroger. - et une requête 9 du client-utilisateur 3 écrite selon des règles d'écritures 21 explicitées par la suite. L'application 1 a comme sortie une réponse considérée comme optimale 10 à la requête 9. As seen in Figure 1, the application 1 uses as input parameters, provided by the interface 4: - an Internet address 7 to obtain the WSDL document 8 of the web service 5 that the user-client 3 wants to interrogate. - And a request 9 of the client-user 3 written according to writing rules 21 explained later. The application 1 has as output an answer considered optimal 10 to the request 9.

Le document WSDL 8 obtenu en appelant l'adresse Internet 7 via HTTP ou HTTPS est un fichier de type XML codé selon le formalisme WSDL. La syntaxe, la manipulation, le décodage d'un fichier XML est connu de l'homme de l'art. La lecture (décodage) de ce document WSDL 8 permet en particulier de connaître : le nom de chacune des méthodes (c'est-à-dire des fonctions) gérées par le service web 5 le nom ou les noms des paramètres d'entrée, leur type pour chacune des méthodes, leur caractère obligatoire ou pas le nom et le type du résultat pour chacune des méthodes. la localisation du service web 5, c'est à dire l'adresse Internet permettant d'accéder au service web. Le type de paramètre d'entrée, ou de résultat de la méthode, peut être soit un type simple (entier, réel, chaîne de caractères...), soit un type complexe (structure de données composé de type simple, tableau composé de type simple, tableau composé de structure de données complexe.. etc.) Des exemples, nullement limitatifs, donnés ci-après, permettent, d'une part, de mieux comprendre les types simples et les types complexes, et, d'autre part, vont être utilisés par la suite pour mieux comprendre le procédé d'optimisation de recherche. Exemple El : nom de la méthode : name= «Method1» résultat de la méthode décrit dans le document WSDL 8 : name =«Method 1 Result» type=« s:string» paramètre d'entrée de type simple dans le document WSDL 8 non obligatoire : <s:element minOccurs=«0» maxOccurs=«1» name= «param1» type=«s:string» /> L'équivalent en un langage orienté objet de cet exemple El est : Public String Methodl(String param1) ; Exemple E2 : nom de la méthode : name= «Method2» résultat de la méthode dans le document WSDL 8 : name=«Method2Result» type=«tns:Address» la structure Address étant définie dans le document WSDL 8 par <s:complexType name=«Address» <s:sequence> < name=«Street» type=« s:string»..> < name=«City» type=«s:string»..> 35 < name=«ZipCode» type=«s:int»..> </s:sequence> </s:complexType paramètre d'entrée de type complexe non obligatoire: <s:element minOccurs=«0» maxOccurs=«1» name= «param1» type=«tns:Person» /> la structure Person étant définie dans le document WSDL 8 par <s:complexType name=«Person» <s:sequence> <s:element minOccurs=« O» maxOccurs=«1» name=«LastName» type=«s:string»..> /> <s:element minOccurs=« O» maxOccurs=«1» name=«FirstName» type=«s:string»..>/> <s:element minOccurs=« 1» maxOccurs=«1» name=« BithDate» 15 type=«s:dateTime»..>/> </s:sequence> </s:complexType> L'équivalent en un langage orienté objet de cet exemple E2 est : 20 Public Address Method2(Person param1) ; Avec: Public class Person { public String LastName ; public String FirstName ; public String BirthName ; } Public class Address { public String Street ; public String City ; public String ZipCode ; } 35 Exemple E3 : nom de la méthode : name= «Method3» résultat de la méthode dans le document WSDL 8 : name=«Method3Result» type=«tns:ArrayOfString» 10 25 30 paramètre d'entrée: narre= «param1» type=«tns: ArrayOfString » L'équivalent en un langage orienté objet de cet exemple E3 est : Public String[] Method3(String[] param1) ; Exemple E4 : nom de la méthode : name=«Method4» résultat de la méthode dans le document WSDL 8 : name=«Method4Result» type=« tns:ArrayOfAddress» le de la méthode dans le document WSDL 8 : name=«Method4Result» type=«tns:ArrayOfAddress» le type ArrayOfAddress étant défini dans le document WSDL 8 par <s:complexType name=«ArrayOfAddress» name=«Address» type=«tns:Address» </s:sequence> </s:complexType> paramètre d'entrée: narre= «param1» type=«tns: ArrayOfPerson » L'équivalent en un langage orienté objet de cet exemple E4 est : Public Address[] Method4(Person[] param1) ; Exemple E5 : 25 nom de la méthode : name=«GetSport» résultat de la méthode dans le document WSDL 8 peut être name=« GetSport Result» type=«tns:ArrayOfSport» le type ArrayOfSport étant défini dans le document WSDL 8 par 30 <s:complexType name=«ArrayOfSport» name=«Name» type=«s:string» name=«PracticeAddress» type=«tns:Address» </s:sequence> </s:complexType> 35 paramètre d'entrée obligatoire: narre= «param1» type=«tns: Persan » 15 20 L'équivalent en un langage orienté objet de cet exemple E5 est : Public Sport[] Method5(Person param1) ; Avec Public class Sport { public String Name ; public Adress PracticeAddress ; } La requête 9 est écrite soit directement par le client-utilisateur 3 soit construite par l'interface utilisateur 4 suite au besoin du client-utilisateur 3. La requête 9 doit suivre des règles d'écriture 21 afin de pouvoir être décodée par l'application 1. Ces règles d'écritures 21 doivent pouvoir permettre d'exprimer des requêtes 9 complexes si nécessaire. Un procédé selon l'invention propose un langage type SQL pour les règles d'écriture 21 permettant de formuler la requête 9. Dans le cas de l'exemple E1, la requête 9 pourrait être SELECT Method1.«value» FROM Method 1 .«parameters» parameters, Method1 Method1 La requête 9 pourrait être aussi, si on veut filtrer au niveau du param1: SELECT Method1.«value» FROM Method 1 .«parameters» parameters, Method1 Method1 WHERE parameters.«paraml» ='chaîne1' Dans le cas de l'exemple E2, la requête 9 pourrait être SELECT Method2.«Street», Method2.«City», Method2.«ZipCode» FROM Method2.«parameters» parameters, Method2 Method2 WHERE parameters.«paraml .LastName» = 'Dupont ' AND parameters.«param1.FirstName» = 'Alain' AND parameters.«paraml.BithDate» = {ts 2010-11-03:20:17'} Dans le cas de l'exemple E3, la requête 9 pourrait être SELECT Method3.«value» FROM Method3.«parameters» parameters, Method3 Method3 WHERE parameters.«paraml.String[0]» ='chaîne1' AND parameters.«paraml.String[1]» ='chaine2' Les besoins exprimés dans les exemples de requête 9 préalablement cités amènent des réponses que l'on pourrait obtenir directement en appelant le service web 5. Modifions ce besoin avec l'exemple E2. SELECT Method2.«Street», Method2.«City», Method2.«ZipCode» FROM Method2.«parameters» parameters, Method2 Method2 WHERE parameters.«paraml.BithDate» = {ts'2010-11-03:20:17'} AND Method2.«City»,='Paris' ORDER BY Method2.«Street» On voit que ce besoin : filtrage selon la ville et tri selon la rue, ne pourrait pas être exprimé dans un appel direct au service web 5. Comme on le voit figure 2, un procédé d'optimisation de recherche selon l'invention peut être décomposé en étapes comme suit : Etape 100: obtention du ou des document(s) WSDL du ou des service(s) web que l'utilisateur souhaite appeler. Etape 200 : construction de tables dans la base de données relationnelle, Etape 250 : construction d'une méta-requête 9 SQL impliquant l'instruction SELECT et incluant : - dans sa clause FROM la référence à une ou plusieurs méthodes d'un où plusieurs web services - dans sa clause WHERE les paramètres d'entrée des méthodes des web services impliqués dans la clause FROM Etape 275 : présentation de la requête à l'utilisateur afin qu'il définisse ses paramètres d'entrée ainsi que les opérations qu'il souhaite réaliser sur les données retournées ; puis validation de la requête 9. Etape 300 : traduction de la méta-requête SQL pour construction et exécution de l'appel SOAP à la méthode, Etape 400 : récupération des données dans les tables construites à l'étape 200, Etape 500 : traduction de la méta-requête SQL pour construction d'une requête SQL sur les tables construites à l'étape 200 et exécution de ladite requête SQL, Etape 600 : construction du résultat 10, Etape 700 : destruction des tables construites à l'étape 200, The WSDL document 8 obtained by calling the Internet address 7 via HTTP or HTTPS is an XML type file encoded according to the WSDL formalism. The syntax, the manipulation, the decoding of an XML file is known to those skilled in the art. The reading (decoding) of this document WSDL 8 makes it possible in particular to know: the name of each of the methods (that is to say functions) managed by the web service 5 the name or the names of the input parameters, their type for each method, their mandatory nature or not the name and the type of result for each method. the location of the web service 5, ie the Internet address allowing access to the web service. The type of input parameter, or result of the method, can be either a simple type (integer, real, string of characters ...), or a complex type (simple type of composite data structure, table composed of simple type, table composed of complex data structure .. etc.) Examples, in no way limiting, given below, make it possible, on the one hand, to better understand simple types and complex types, and on the other hand will be used later to better understand the search optimization process. Example El: name of the method: name = "Method1" result of the method described in the WSDL 8 document: name = "Method 1 Result" type = "s: string" simple type input parameter in the WSDL document 8 not required: <s: element minOccurs = "0" maxOccurs = "1" name = "param1" type = "s: string" /> The equivalent in an object-oriented language of this example El is: Public String Methodl (String param1); Example E2: name of the method: name = "Method2" result of the method in the WSDL 8 document: name = "Method2Result" type = "tns: Address" The Address structure is defined in the WSDL 8 document by <s: complexType name = "Address" <s: sequence> <name = "Street" type = "s: string" ..> <name = "City" type = "s: string" ..> 35 <name = "ZipCode" type = "S: int" ..> </ s: sequence> </ s: complexType non-mandatory complex type input parameter: <s: element minOccurs = "0" maxOccurs = "1" name = "param1" type = "Tns: Person" /> the Person structure being defined in the document WSDL 8 by <s: complexType name = "Person" <s: sequence> <s: element minOccurs = "O" maxOccurs = "1" name = " LastName »type =" s: string "..> /> <s: element minOccurs =" O "maxOccurs =" 1 "name =" FirstName "type =" s: string "..> /> <s: element minOccurs = "1" maxOccurs = "1" name = "BithDate" 15 type = "s: dateTime" ..> /> </ s: sequence> </ s: complexType> The object-oriented equivalent of this example e E2 is: Public Address Method2 (Person param1); With: Public class Person {public String LastName; public String FirstName; public String BirthName; Public class Address {public String Street; Public String City; public String ZipCode; } 35 Example E3: name of the method: name = "Method3" result of the method in the WSDL 8 document: name = "Method3Result" type = "tns: ArrayOfString" 10 25 30 input parameter: narrate = "param1" type = "tns: ArrayOfString" The equivalent in an object-oriented language of this example E3 is: Public String [] Method3 (String [] param1); Example E4: Name of the method: name = "Method4" result of the method in the WSDL 8 document: name = "Method4Result" type = "tns: ArrayOfAddress" of the method in the WSDL 8 document: name = "Method4Result" type = "tns: ArrayOfAddress" The ArrayOfAddress type is defined in the WSDL 8 document by <s: complexType name = "ArrayOfAddress" name = "Address" type = "tns: Address" </ s: sequence> </ s: complexType > input parameter: narre = "param1" type = "tns: ArrayOfPerson" The object-oriented equivalent of this example E4 is: Public Address [] Method4 (Person [] param1); Example E5: 25 method name: name = "GetSport" result of the method in the WSDL 8 document can be name = "GetSport Result" type = "tns: ArrayOfSport" the ArrayOfSport type being defined in the WSDL document 8 by 30 <s: complexType name = "ArrayOfSport" name = "Name" type = "s: string" name = "PracticeAddress" type = "tns: Address" </ s: sequence> </ s: complexType> 35 input parameter mandatory: narre = "param1" type = "tns: Persian" 15 20 The equivalent in an object-oriented language of this example E5 is: Public Sport [] Method5 (Person param1); With Public class Sport {public String Name; public Address PracticeAddress; } The request 9 is written either directly by the client-user 3 is built by the user interface 4 following the need of the client-user 3. The request 9 must follow writing rules 21 in order to be decoded by the 1. These writing rules 21 must be able to express complex queries if necessary. A method according to the invention proposes a SQL standard language for the writing rules 21 making it possible to formulate the request 9. In the case of the example E1, the request 9 could be SELECT Method1. "Value" FROM Method 1. " parameters »parameters, Method1 Method1 The query 9 could also be, if we want to filter at param1: SELECT Method1." value "FROM Method 1." parameters "parameters, Method1 Method1 WHERE parameters." paraml "= 'string1' In the case of example E2, query 9 could be SELECT Method 2. "Street", Method 2. "City", Method 2. "ZipCode" FROM Method 2. "parameters" parameters, Method2 Method2 WHERE parameters. "paraml .LastName" = 'Dupont' AND parameters' param1.FirstName '=' Alain 'AND parameters.' Paraml.BithDate '= {ts 2010-11-03: 20: 17'} In the case of example E3, query 9 could SELECT Method3. "value" FROM Method3. "parameters" parameters, Method3 Method3 WHERE parameters. "paraml.String [0]" = 'string1' AND by ameters. "paraml.String [1]" = 'string2' The needs expressed in the previously mentioned sample requests 9 lead to answers that could be obtained directly by calling the web service 5. Let's modify this need with example E2 . SELECT Method 2. "Street", Method 2. "City", Method 2. "ZipCode" FROM Method 2. "parameters" parameters, Method2 Method2 WHERE parameters. "Paraml.BithDate" = {ts'2010-11-03: 20: 17 ' } AND Method2. "City", = 'Paris' ORDER BY Method2. "Street" We see that this need: filtering according to the city and sorting according to the street, could not be expressed in a direct call to the web service. As can be seen in FIG. 2, a search optimization method according to the invention can be broken down into steps as follows: Step 100: obtaining the WSDL document (s) from the service (s) that the user wishes call. Step 200: Building Tables in the Relational Database, Step 250: Constructing a SQL 9 Meta-query involving the SELECT statement and including: - in its FROM clause the reference to one or more methods of one or more web services - in its WHERE clause the input parameters of the methods of the web services involved in the FROM clause Step 275: presentation of the request to the user so that he defines his input parameters as well as the operations he wish to achieve on the returned data; then validation of the request 9. Step 300: Translation of the SQL meta-query for construction and execution of the SOAP call to the method, Step 400: Data retrieval in the tables built in step 200, Step 500: Translation the SQL meta-query for constructing an SQL query on the tables built in step 200 and executing said SQL query, Step 600: constructing the result 10, Step 700: Destroying the tables built in step 200,

Un procédé d'optimisation de recherche selon l'invention, lorsqu'il est mis en oeuvre par un utilisateur-client 3 via une interface 4, débute par une étape 100 qui consiste dans un premier temps à obtenir le ou les document(s) WSDL 8 contenant le descriptif WSDL du ou des service(s) web 5 qui intéresse(nt) l'utilisateur-client 3, en appelant via le protocole HTTP ou HTTPS la ou les adresse(s) Internet 7 fournie(s) par l'utilisateur-client 3 via l'interface 4. A search optimization method according to the invention, when it is implemented by a user-client 3 via an interface 4, begins with a step 100 which consists initially in obtaining the document (s) WSDL 8 containing the description WSDL of the service (s) web 5 which interests (s) the user-client 3, by calling via the HTTP or HTTPS the Internet address (es) 7 provided by the user-client 3 via the interface 4.

Si la ou les adresse(s) Internet 7 ne sont pas accessible ou si la ou les page(s) retournée(s) ne correspondent pas à un document WSDL, l'étape 100 retourne un code d'erreur et le procédé s'arrête. If the Internet address (es) 7 are not accessible or if the page (s) returned (s) do not correspond to a WSDL document, step 100 returns an error code and the process is stopped.

A la fin de l'étape 100, pour chaque service web, la liste des méthodes disponibles est présentée à l'utilisateur afin qu'il sélectionne celles qui l'intéressent. At the end of step 100, for each web service, the list of available methods is presented to the user so that he selects those that interest him.

Ensuite, une étape 200 consiste en la construction des tables temporaires dans la base de données 6. L'étape 200 comporte une utilisation des informations contenues dans le ou les document(s) WSDL 8 impliquant le ou les méthode(s) sélectionnées par l'utilisateur. Le document WSDL 8 permet d'identifier le résultat ainsi que son type : simple ou complexe. Il est à noter à titre de clarification que le procédé de l'étape 200, va permettre, à partir du document WSDL, de construire la partie SOAP de la 25 méta-requête SQL (requête 9). L'étape débute à partir du document WSDL, qui permet, pour une méthode, d'identifier les paramètres ainsi que les données retournées. La présentation de la méta-requête SQL à l'utilisateur lui permet d'appliquer des opérateurs, et/ou des fonctions, et/ou des critères au sens 30 SQL, sur les données retournées. La requête 9 est donc construite à partir de la sélection d'une ou plusieurs méthode(s) du ou des service(s) web (toutes les méthodes étant décrites dans le ou les WSDL). Next, a step 200 consists of the construction of the temporary tables in the database 6. The step 200 comprises a use of the information contained in the WSDL document (s) 8 involving the method (s) selected by the 'user. The WSDL 8 document makes it possible to identify the result as well as its type: simple or complex. It should be noted for clarification that the method of step 200 will allow, from the WSDL document, to construct the SOAP part of the SQL meta-query (query 9). The step starts from the WSDL document, which allows, for a method, to identify the parameters as well as the returned data. The presentation of the SQL meta-query to the user enables him to apply operators, and / or functions, and / or criteria in the SQL sense, on the returned data. The request 9 is therefore constructed from the selection of one or more method (s) of the service (s) web (all methods are described in the WSDL or).

Les tables temporaires sont constituées, d'une part, d'une table temporaire de référence TTR, d'autre part, d'une ou plusieurs tables temporaires de données TTD. Dans l'exemple de mise en oeuvre décrit ici, l'étape 200 commence par la construction de la table temporaire de référence TTR, réalisée par un appel classique en langage SQL «CREATE TABLE...». La table temporaire de référence TTR comporte, par exemple, au moins deux colonnes : une colonne TTRa, par exemple nommée «table_id», qui permet de stocker le nom physique de chacune des tables temporaires de données TTD, et une deuxième colonne TTRb, par exemple nommée «table_name, », qui permet de conserver le nom de la méthode associée ou si le résultat de la méthode est de forme complexe, le nom de la méthode suivi d'un séparateur (le point par exemple) et d'un identifiant de la forme complexe du résultat de la méthode. Le nom de cette table temporaire de référence TTR est construit par exemple en utilisant la date et de l'heure de la création de cette table, suivi d'un numéro aléatoire afin de garantir son unicité. Le nom de cette table temporaire de référence TTR est gardé en mémoire jusqu'à la fin des étapes du procédé. L'étape 200 consiste en une analyse le document WSDL 8 et en la création d'une ou plusieurs tables temporaires de données TTD selon la complexité du résultat de la méthode sollicitée. Plus précisément, pour une méthode, on peut être amené à construire une seule table temporaire si aucun type complexe n'est impliqué. Dès qu'un type complexe est impliqué, on construit plusieurs tables. L'id table est décomposé comme suit : - Id YYYY_MM_DD_hh_mm_ss : ce marqueur horaire permet la purge - XXX YYYY : identifiant aléatoire permettant, pour ce marqueur horaire, d'assurer une référence unique à la méthode web service impliquée - Ti pour le nom de la méthode web service impliquée, - TN avec N variant de 2 à N si des types complexes sont impliqués. The temporary tables consist, on the one hand, of a temporary reference table TTR, on the other hand, of one or more temporary tables of TTD data. In the implementation example described here, step 200 begins with the construction of the temporary reference table TTR, performed by a standard call in SQL "CREATE TABLE ...". The temporary reference table TTR comprises, for example, at least two columns: a column TTRa, for example named "table_id", which makes it possible to store the physical name of each of the temporary tables of data TTD, and a second column TTRb, by example named "table_name," which keeps the name of the associated method or if the result of the method is complex, the name of the method followed by a separator (the point for example) and an identifier of the complex form of the result of the method. The name of this temporary reference table TTR is constructed for example by using the date and time of the creation of this table, followed by a random number to guarantee its uniqueness. The name of this temporary reference table TTR is kept in memory until the end of the process steps. Step 200 consists of an analysis of the WSDL document 8 and the creation of one or more temporary tables of TTD data according to the complexity of the result of the requested method. More precisely, for a method, one can be led to build a single temporary table if no complex type is involved. As soon as a complex type is involved, several tables are built. The id table is broken down as follows: - Id YYYY_MM_DD_hh_mm_ss: this time marker allows the purge - XXX YYYY: random identifier allowing, for this time marker, to ensure a unique reference to the web service method involved - Ti for the name of the web service method involved, - TN with N varying from 2 to N if complex types are involved.

Tout autre procédé permettant de couvrir les besoins de purge et d'identification des méthodes, paramètres, données retournées dans le modèle physique de données temporaire, est acceptable. Any other method to cover purge requirements and identification of methods, parameters, data returned in the temporary physical data model, is acceptable.

Dans l'exemple El déjà cité, on a la situation suivante : Exemple El type simple : [WebMethod] public string Methodl(string paraml) In the example El already quoted, we have the following situation: Example El simple type: [WebMethod] public string Methodl (string paraml)

Contenu de la table TTR table id table_name id 2010 11 03 09 19 11 487 5120 T1 Method 1 Contenu de la table TTD <id> <null.id> value 1 NULL Response from Method1 Une seule table temporaire de données TTD est créée. Le nom de cette table temporaire de données TTD est construit en utilisant, dans cet exemple nullement limitatif, la date et de l'heure de la création de cette table suivi d'un numéro aléatoire et du terme Ti afin de garantir son unicité. Soit "id_2010_11_03_09_19_11_487_5120_T1", le nom de cette table temporaire de données TTD pour cet exemple E1. Cette table de données TTD est créée par une requête SQL classique CREATE TABLE, elle contient trois colonnes nommées respectivement <id> de type entier, <null.id> de type entier, value de type chaîne de caractères. La colonne <id> sert d'identifiant unique pour les lignes de la table temporaire de données TTD id_2010_11_03_09_19_11_487_5120_T1, la colonne <null.id> est pour cet exemple El non significative, la colonne value sert à stocker les réponses « Method1 Result». La table temporaire de données TTD id_2010_11_03_09_19_11_487_5120_T1 étant créée, une ligne est ajoutée à la table temporaire de référence TTR avec dans la première colonne «table_id» la chaîne de caractères id 2010 11 03 09 19 11 487 5120 T1 et dans la deuxième colonne «table_name», le nom de la méthode de l'exemple El, c'est à dire la chaîne de caractère « Method1 ». Contents of the TTR table table id table_name id 2010 11 03 09 19 11 487 5120 T1 Method 1 Contents of the TTD table <id> <null.id> value 1 NULL Response from Method1 Only one temporary TTD data table is created. The name of this temporary table TTD data is built using, in this example non-limiting, the date and time of the creation of this table followed by a random number and the term Ti to ensure its uniqueness. Let "id_2010_11_03_09_19_11_487_5120_T1", the name of this temporary TTD data table for this example E1. This TTD data table is created by a CREATE TABLE classic SQL query, it contains three columns named respectively <id> of type integer, <null.id> of type integer, value of type string. The <id> column serves as a unique identifier for the rows of the temporary TTD data table id_2010_11_03_09_19_11_487_5120_T1, the <null.id> column is for this non-significant El example, the value column is used to store the "Method1 Result" responses. The temporary data table TTD id_2010_11_03_09_19_11_487_5120_T1 being created, a line is added to the temporary reference table TTR with in the first column "table_id" the character string id 2010 11 03 09 19 11 487 5120 T1 and in the second column "table_name ", The name of the method of the example El, ie the string" Method1 ".

Dans le second exemple E2, la situation est la suivante : ExempleE2 type complexe composé de types simples: public class Person { public String LastName; public String FirstName; public DateTime BirthDate; } public class Address { public String Street; public String City; public int ZipCode; } [WebMethod] public Address Method2(Person paraml) In the second example E2, the situation is as follows: ExampleE2 complex type composed of simple types: public class Person {public String LastName; public String FirstName; public DateTime BirthDate; public class Address {public String Street; Public String City; public int ZipCode; } [WebMethod] public Address Method2 (Person paraml)

Contenu de la table TTR table id table_name id 2010 11 03 09 33 46 565 5120 T1 Method2 Contenu de la table TTD <id> <null.id> Street City ZipCode 1 NULL 130 rue du Baptistou, Saint Gèly du 34980 ZAE Nord Fesc La table temporaire de référence TTR est créée comme dans l'exemple El et une seule table temporaire de données TTD est créée. Soit "id_2010_11_03_09_33_46_565_5120_T1", le nom de cette table temporaire de données TTD crée par une requête SQL classique CREATE TABLE ; dans l'exemple E2, la table temporaire de données TTD comprend cinq colonnes nommées respectivement <id> de type entier, <null.id> de type entier, "Street" de type chaîne de caractères, "City" de type chaîne de caractère, "ZipCode" de type chaîne de caractère. La colonne <id> sert d'identifiant unique pour les lignes de la table temporaire de données TTD id_2010_11_03_09_33_46_565_5120_T1, la colonne <null.id> est, pour cet exemple E2, non significative, les colonnes "Street", "City", "ZipCode" servent à stocker les réponses «Method2Result». La table temporaire de données TTD id_2010_11_03_09_33_46_565_5120_T1 étant créée, une ligne est ajoutée à la table de référence TTR avec dans la première colonne «table_id» la chaîne de caractères id 2010 11 03 09 33 46 565 5120 T1 et dans la deuxième colonne «table_name», le nom de la méthode de l'exemple E2, c'est à dire la chaîne de caractère «Method2». Dans l'exemple E5, la situation est la suivante : Exemple E5 type complexe composé de types complexes: public class Person { public String LastName; public String FirstName; public DateTime BirthDate; public Address HomeAddress; } public class Sport { public String Name; public Address PracticeAddress; } public class Address { public String Street; public String City; public int ZipCode; Contents of the TTR table table id table_name id 2010 11 03 09 33 46 565 5120 T1 Method2 Contents of the TTD table <id> <null.id> Street City ZipCode 1 NULL 130 Baptistou Street, Saint Gely 34980 ZAE Nord Fesc La Temporary reference table TTR is created as in Example El and only one temporary table of TTD data is created. Let "id_2010_11_03_09_33_46_565_5120_T1", the name of this temporary TTD data table created by a classic SQL query CREATE TABLE; in example E2, the temporary TTD data table has five columns named respectively <id> of type integer, <null.id> of type integer, "Street" of type string, "City" of type string , "ZipCode" of string type. The <id> column serves as a unique identifier for the rows of the temporary data table TTD id_2010_11_03_09_33_46_565_5120_T1, the column <null.id> is, for this example E2, insignificant, the columns "Street", "City", " ZipCode "are used to store the" Method2Result "responses. The temporary data table TTD id_2010_11_03_09_33_46_565_5120_T1 being created, a line is added to the reference table TTR with in the first column "table_id" the character string id 2010 11 03 09 33 46 565 5120 T1 and in the second column "table_name" , the name of the method of the example E2, ie the string "Method2". In Example E5, the situation is as follows: Example E5 complex type composed of complex types: public class Person {public String LastName; public String FirstName; public DateTime BirthDate; public Address HomeAddress; } public class Sport {public String Name; public Address PracticeAddress; public class Address {public String Street; Public String City; public int ZipCode;

[WebMethod] public Sport[] GetSports(Person paraml) Contenu de la table TTR table id table name id_2010_11_03_09_43_55_361_5120_T1 GetSports id_2010_11_03_09_43_55_361_5120_T2 GetSports.PracticeAddress Contenu de la table TTD1 <id> <null.id> Name 1 NULL Roller 30 Contenu de la table TTD2 <id> <GetSports.id> Street City ZipCode 1 1 98 route de la Reine Boulogne-Billancourt 92100 La table temporaire de référence TTR est créée comme dans 35 l'exemple El et deux tables temporaires de données TTD sont créées. Soit "id_2010_11_03_09_43_55_361_5120_T1", le nom de la première table temporaire de données TTD crée par une requête SQL classique CREATE TABLE avec pour l'exemple E5, trois colonnes nommée <id> de type entier, <null.id> de type entier, "Name" de type chaîne de caractères. La colonne <id> 15 20 } 25 sert d'identifiant unique pour les lignes de la table temporaire de données TTD id_2010_11_03_09_43_55_361_5120_T1, la colonne "Name" sert à stocker la réponse Name de la structure ArrayOfSport de l'exemple E5. La table temporaire de données TTD id_2010_11_03_09_43_55_361_5120_T1 étant créée, une ligne est ajoutée à la table temporaire de référence TTR avec dans la première colonne «table_id» la chaîne de caractères id 2010 11 03 09 43 55 361 5120 T1 et dans la deuxième colonne «table_name», le nom de la méthode de l'exemple E5, c'est à dire la chaine de caractère «GetSports». [WebMethod] public Sport [] GetSports (Person paraml) Contents of the TTR table table id table name id_2010_11_03_09_43_55_361_5120_T1 GetSports id_2010_11_03_09_43_55_361_5120_T2 GetSports.PracticeAddress Table Contents TTD1 <id> <null.id> Name 1 NULL Roller 30 Contents of the TTD2 table <id> <GetSports.id> Street City ZipCode 1 1 98 Queen's Road Boulogne-Billancourt 92100 The temporary TTR reference table is created as in example El and two temporary tables of TTD data are created. Let's say "id_2010_11_03_09_43_55_361_5120_T1", the name of the first temporary TTD data table created by a CREATE TABLE classic SQL query with E5 for example, three columns named <id> of integer type, <null.id> of integer type, " Name "of type string. The column <id> 15 20} 25 serves as a unique identifier for the rows of the TTD data temporary table id_2010_11_03_09_43_55_361_5120_T1, the "Name" column is used to store the Name response of the ArrayOfSport structure of Example E5. The temporary TTD data table id_2010_11_03_09_43_55_361_5120_T1 being created, a line is added to the temporary reference table TTR with in the first column "table_id" the character string id 2010 11 03 09 43 55 361 5120 T1 and in the second column "table_name ", The name of the method of the example E5, ie the string" GetSports ".

Soit id_2010_11_03_09_43_55_361_5120_T2, le nom de la deuxième table temporaire de données TTD crée par une requête SQL connue en soi de type CREATE TABLE avec, pour cet exemple E5, cinq colonnes nommée <id> de type entier, <GetSports.id> de type entier," Street" de type chaîne de caractères, "City" de type chaîne de caractère, "ZipCode" de type chaîne de caractère. La colonne <id> sert d'identifiant unique pour les lignes de la table temporaire de données TTD id_2010_11_03_09_43_55_361_5120_T2, les colonnes "Street", "City", "ZipCode" servent à stocker les réponses de la sous structure Address de la structure ArrayOfSport. La colonne <GetSports.id> sert lors des insertions dans cette table id 2010 11 03 09 43 55 361 5120 T2 de lien avec la ligne correspondante de la table id_2010_11_03_09_43_55_361_5120_T1. En langage SQL, on utilise une syntaxe de type «from id 2010 11 03 09 43 55 361 5120 T1 INNER JOIN id-2010-11-03-09-43-55-361-5120-T2 ONid-2010-11-03-09-43-55-361-5120-T1.<id>= id_2010_11_03_09_43_55_361_5120_T2.<GetSports.id> ». Either id_2010_11_03_09_43_55_361_5120_T2, the name of the second temporary TTD data table created by a CREATE TABLE known per se query with, for this example E5, five columns named <id> of integer type, <GetSports.id> of integer type , "Street" type string, "City" type string, "ZipCode" type string. The <id> column serves as a unique identifier for the rows of the temporary TTD data table id_2010_11_03_09_43_55_361_5120_T2, the "Street", "City", "ZipCode" columns are used to store the responses of the Address sub-structure of the ArrayOfSport structure. The column <GetSports.id> is used for insertions in this table id link with the corresponding line of the table id_2010_11_03_09_43_55_361_5120_T1. In SQL, we use a syntax of type "from id 2010 11 03 09 43 55 361 5120 T1 INNER JOIN id-2010-11-03-09-43-55-361-5120-T2 ONid-2010-11-03 -09-43-55-361-5120-T1. <Id> = id_2010_11_03_09_43_55_361_5120_T2. <GetSports.id> ".

Dans cet exemple E5, le nom de la colonne <GetSports.id> sert à indiquer que la table id_2010_11_03_09_43_55_361_5120_T2 contient la sous structure PracticeAddress du résultat. Afin de garder une similitude de construction des tables temporaires de données TTD, les tables temporaires de données TTD contiennent une colonne nommée «null.id» lorsqu'elles ne correspondent pas à une sous structure dans une structure de réponse. La table temporaire de données TTD nommée id_2010_11_03_09_43_55_361_5120_T2 étant créée, une ligne est ajoutée à la temporaire de référence TTR avec dans la première colonne «table_id» la chaîne de caractères id 2010 11 03 09 43 55 361 5120 T2 et dans la deuxième colonne «table_name», la chaine de caractère «GetSports.PracticeAddress». Dans l'exemple E5, la table de référence TTR contient donc deux lignes. In this E5 example, the name of the <GetSports.id> column is used to indicate that the id_2010_11_03_09_43_55_361_5120_T2 table contains the PracticeAddress sub-structure of the result. In order to keep the TTD data tables similar in construction, the temporary TTD tables contain a column named "null.id" when they do not correspond to a substructure in a response structure. The temporary TTD data table named id_2010_11_03_09_43_55_361_5120_T2 being created, a line is added to the temporary reference TTR with in the first column "table_id" the character string id 2010 11 03 09 43 55 361 5120 T2 and in the second column "table_name "The string" GetSports.PracticeAddress ". In example E5, the reference table TTR thus contains two lines.

Dans une étape suivante 250, on construit une méta-requête SQL impliquant l'instruction SELECT et incluant : - dans sa clause FROM la référence à un où plusieurs web services, - dans sa clause WHERE les paramètres d'entrée des web services impliqués dans la clause FROM. La méta-requête SQL comporte 2 parties : - Une première partie, liée à l'appel à une méthode d'un web service avec passage de paramètres, - Une seconde partie, liée aux données résultat. Pour cette seconde partie, du fait qu'il a été construit un modèle physique de données, toute la puissance du langage SQL peut être utilisée sur les résultats de l'appel à la méthode du service web, et notamment les clauses de l'instruction SELECT. In a next step 250, we construct a SQL meta-query involving the SELECT statement and including: - in its FROM clause the reference to one or more web services, - in its WHERE clause, the input parameters of the web services involved in the FROM clause. The SQL meta-query has 2 parts: - A first part, related to the call to a method of a web service with parameters passing, - A second part, related to the result data. For this second part, because a physical model of data has been constructed, all the power of the SQL language can be used on the results of the call to the web service method, and in particular the clauses of the instruction SELECT.

Une étape 275 présente la requête à l'utilisateur afin qu'il définisse ses paramètres d'entrée ainsi que les opérations qu'il souhaite réaliser sur les données retournées : cette étape clef permet à l'utilisateur de disposer de toute la puissance du langage SQL pour transformer les données brutes retournées par le ou les services web. A step 275 presents the request to the user to define his input parameters as well as the operations he wishes to perform on the returned data: this key step allows the user to have all the power of the language SQL to transform the raw data returned by the web services.

Dans un deuxième temps, l'étape 275 comporte une analyse de la syntaxe de la requête 9 pour vérifier qu'elle est conforme aux règles 21 et qu'elle se base bien sur des éléments adéquats cités dans le document WSDL 8 reçu suite à l'appel de I"adresse Internet 7. Si ce test échoue, l'étape 100 retourne un code d'erreur et le procédé s'arrête In a second step, step 275 includes an analysis of the syntax of the request 9 to verify that it complies with the rules 21 and that it is based on the appropriate elements cited in the document WSDL 8 received following the request. 7. If this test fails, step 100 returns an error code and the process stops.

Une étape suivante 300 comporte la traduction de la méta-requête SQL pour la construction d'une requête SOAP 20 conforme à la requête 9 et son exécution. L'appel à un service WEB 5 étant connu de l'homme de l'art, il n'est pas détaillé ici. La requête 9 est décodée afin d'extraire le nom de la méthode et les valeurs éventuelles des paramètres d'entrée à transmettre à la requête SOAP 20. La requête SOAP 20 retourne un fichier de retour XML 22 respectant le formalisme WSDL. A next step 300 includes translating the SQL meta-query for constructing a SOAP request-compliant query 9 and executing it. The call to a WEB service 5 being known to those skilled in the art, it is not detailed here. The request 9 is decoded in order to extract the name of the method and the possible values of the input parameters to be transmitted to the SOAP request 20. The SOAP request 20 returns an XML return file 22 respecting the WSDL formalism.

Une étape suivante 400 comporte le décodage du fichier de retour XML 22, l'extraction les données et l'insertion de ces données dans la ou les tables temporaires de données TTD créées lors de l'étape 200. A next step 400 includes decoding the XML return file 22, retrieving the data and inserting that data into the temporary data table (s) TTD created in step 200.

Les données sont insérées dans la ou les tables temporaires de données TTD par une requête SQL INSERT INTO ou par tout autre moyen connu de l'homme de l'art. La correspondance entre le nom physique de la ou des tables temporaires de données TTD, et un élément simple ou une structure de la réponse SOAP contenue dans le fichier XML 22, est retrouvée en utilisant le contenu de la table temporaire de référence TTR. Le choix adéquat des noms de colonnes dans la ou les tables temporaires de données TTD lors de l'étape 200, permet de facilement faire la correspondance entre le nom d'un élément de type simple dans le fichier de retour XML 22 conforme au document WSDL 8 et le nom de la colonne correspondante dans la table temporaire de données TTD associée. The data is inserted into the temporary TTD data table (s) by an INSERT INTO SQL query or by any other means known to those skilled in the art. The correspondence between the physical name of the temporary data table (s) TTD, and a simple element or structure of the SOAP response contained in the XML file 22, is found using the contents of the temporary reference table TTR. Choosing the correct column names in the temporary TTD data table (s) in step 200 makes it easy to map the name of a simple type element in the WSDL-compliant XML return file 22 8 and the name of the corresponding column in the associated temporary TTD data table.

Dans une étape suivante 500, on traduit la méta-requête SQL pour créer une requête SQL 23 et on l'exécute sur la base de données 6. La requête SQL 23 est construite en décodant la requête 9 et en particulier en recherchant pour chaque nom de tables de la requête 9 (identificateur FROM) le nom de la table temporaire de données TTD associée en s'aidant de la table temporaire de référence TTR. La recherche de la correspondance pour un élément est conduite de façon similaire à l'étape 400. In a next step 500, the SQL meta-query is translated to create an SQL query 23 and it is executed on the database 6. The SQL query 23 is constructed by decoding the request 9 and in particular by searching for each name from the query table 9 (FROM identifier) the name of the associated temporary TTD data table with the aid of the temporary reference table TTR. Matching for an item is conducted similarly to step 400.

Dans une étape suivante 600, on génère un résultat 10 en fonction des résultats de la requête SQL 23. Le résultat 10 sera présenté préférentiellement aux formats XML ou CSV afin d'être interprétable facilement par un tableur. In a next step 600, a result 10 is generated according to the results of the SQL query 23. The result 10 will preferably be presented in XML or CSV formats in order to be easily interpretable by a spreadsheet.

Le procédé d'optimisation de recherche comporte avantageusement une étape 700 destinée à la suppression les tables temporaires dans la base de donnée 6. The search optimization method advantageously comprises a step 700 intended to delete the temporary tables in the database 6.

Le fonctionnement du procédé est le suivant : 1/ Soit l'utilisateur-client 3 utilise une interface 4 réduite, lui permettant de taper l'adresse Internet 7 et la requête 9 conformément aux règles d'écriture 21. Il clique alors sur un bouton quelconque pour lancer le précédé selon l'invention et obtenir le résultat 10, cette interface 4 pouvant même être intégrée dans l'application 1. 2/ Soit l'utilisateur-client 3 utilise une interface 4 plus développée, lui permettant de taper l'adresse Internet 7 et de créer sa demande par des outils qui peuvent être graphiques. Dans ce cas, l'interface 4 est chargée de construire la requête 9 conformément aux règles d'écriture 21. De même l'interface 4 peut récupérer le résultat 10 et le formater selon des règles différentes. The operation of the method is as follows: 1 / Either the user-client 3 uses a reduced interface 4, allowing him to type the Internet address 7 and the request 9 according to the writing rules 21. He then clicks on a button to launch the preceded according to the invention and obtain the result 10, this interface 4 can even be integrated in the application 1. 2 / Either the user-client 3 uses a more developed interface 4, allowing him to type the Internet address 7 and create its application by tools that can be graphical. In this case, the interface 4 is responsible for constructing the request 9 in accordance with the writing rules 21. Similarly, the interface 4 can retrieve the result 10 and format it according to different rules.

Avantages de l'invention Le traducteur SQL / SOAP-WSDL permet d'assurer les correspondances suivantes : Web Service SOAP-WSDL SQL Obtention de la Description WSDL Equivalent de lecture du catalogue dans structure des renvoyé par le web une base SQL données service Obtention des Résultat retourné Résultat retourné par la requête données par la méthode Passage des Paramètres Application d'une clause de type WHERE paramètres de la méthode <parameter=value> pour chaque paramètre De plus, il permet l'application complète du langage SQL, notamment : - Opérateurs - Fonctions - Clauses: WHERE, HAVING, ORDER BY, GROUP BY, JOIN, UNION... Advantages of the invention The SQL / SOAP-WSDL translator makes it possible to ensure the following correspondences: Web Service SOAP-WSDL SQL Obtaining the description WSDL Equivalent of reading of the catalog in structure of the returned by the web a database SQL data service Obtaining the Result returned Result returned by the request given by the Passing Parameters method Application of a clause of type WHERE Parameters of the <parameter = value> method for each parameter Moreover, it allows the complete application of the SQL language, in particular: - Operators - Functions - Clauses: WHERE, HAVING, ORDER BY, BY GROUP, JOIN, UNION ...

Variantes de réalisation La portée de la présente invention ne se limite pas aux détails des 5 formes de réalisation ci-dessus considérées à titre d'exemple, mais s'étend au contraire aux modifications à la portée de l'homme de l'art. Une variante consiste à proposer des règles d'écriture 21 avec le formalisme JSON (JavaScript Object Notation). Une autre variante consiste à utiliser une syntaxe SQL de style 10 SELECT IN. Encore une autre variante consiste à présenter le résultat 10 sous n'importe quelle forme exploitable par l'utilisateur-client 3 ou par l'interface utilisateur 4. Il est à noter que, dans la description précédente, on a cité les protocoles 15 de transport HTTP et HTTPS comme moyens d'accès à un service web. Cependant, le protocole SOAP-WSDL n'est pas fermé à ces seuls protocoles de transports HTTP et HTTPS et l'invention s'applique également à d'autres protocoles de transport. Embodiments The scope of the present invention is not limited to the details of the above embodiments considered by way of example, but instead extends to modifications within the scope of those skilled in the art. An alternative is to provide write rules 21 with JSON (JavaScript Object Notation) formalism. Another variation is to use a SELECT IN 10 style SQL syntax. Yet another variant is to present the result 10 in any form exploitable by the user-client 3 or by the user interface 4. It should be noted that in the foregoing description, the protocols 15 of HTTP and HTTPS transport as means of access to a web service. However, the SOAP-WSDL protocol is not closed to these HTTP and HTTPS transport protocols alone, and the invention also applies to other transport protocols.

Claims (7)

REVENDICATIONS1. Procédé d'optimisation de recherche, accessible à un utilisateur d'au moins un service web SOAP-WSDL quelconque, ledit accès étant réalisé à travers un système informatique, ledit système informatique pouvant accéder à au moins une base de données relationnelle et audit service web SOAP- WSDL concerné, ledit utilisateur ayant défini une requête sur des données accessibles par ce service web SOAP-WSDL, caractérisé en ce que le procédé utilise des règles d'écriture préalablement définies, permettant d'exprimer la requête à effectuer, et comporte des étapes suivantes : 100 - de validation des paramètres d'entrée du procédé constitués d'une part de l'adresse Internet permettant d'accéder au document WSDL du service web et d'autre part de la requête à effectuer, 200 - de création de tables dans une base de données relationnelle, 250 - de construction d'une méta-requête SQL impliquant l'instruction SELECT et incluant : - dans sa clause FROM une référence à un où plusieurs web services - dans sa clause WHERE des paramètres d'entrée des web services impliqués dans la clause FROM 275 - de présentation de la requête à l'utilisateur afin qu'il définisse ses paramètres d'entrée ainsi que les opérations qu'il souhaite réaliser sur les données retournées ; puis de validation de la requête. 300 - de traduction de la méta-requête SQL pour construction et exécution de l'appel SOAP à effectuer sur le service web, 400 - de récupération de la réponse du service web et de stockage de cette réponse dans les tables construite à l'étape 200, 500 - de traduction de la méta-requête SQL pour la construction d'une requête sur les tables construites à l'étape 200 et d'exécution de ladite requête. REVENDICATIONS1. Search optimization method, accessible to a user of at least one SOAP-WSDL web service of any kind, said access being realized through a computer system, said computer system being able to access at least one relational database and said web service SOAP-WSDL concerned, said user having defined a request on data accessible by this SOAP-WSDL web service, characterized in that the method uses previously defined writing rules, making it possible to express the request to be made, and includes following steps: 100 - validation of the input parameters of the process consisting on the one hand of the Internet address for accessing the WSDL document of the web service and on the other hand the request to be made, 200 - creation of tables in a relational database, 250 - constructing a SQL meta-query involving the SELECT statement and including: - in its FROM clause a reference to one where several web services - in its WHERE clause of the input parameters of the web services involved in the FROM 275 clause - to present the request to the user so that he defines his input parameters as well as the operations that he wishes to achieve on the returned data; then validation of the request. 300 - translation of the SQL meta-query for construction and execution of the SOAP call to be made on the web service, 400 - recovery of the response of the web service and storage of this response in the tables built in step 200, 500 - translation of the SQL meta-query for building a query on the tables built in step 200 and executing said query. 2. Procédé selon la revendication 1 caractérisé en ce que les règles d'écriture permettant d'exprimer la requête à effectuer, utilisent le langage SQL (Structured Query Language). 2. Method according to claim 1 characterized in that the writing rules for expressing the request to perform, use the language SQL (Structured Query Language). 3. Procédé selon la revendication 1 caractérisé en ce que les règles d'écriture permettant d'exprimer la requête à effectuer, utilisent le langage JSON (JavaScript Oriented Notation). 3. Method according to claim 1 characterized in that the writing rules for expressing the request to perform, use the language JSON (JavaScript Oriented Notation). 4. Procédé selon la revendication 1 caractérisé en ce que les règles d'écriture sont codées avec un langage permettant d'exprimer toute requête. 4. Method according to claim 1 characterized in that the writing rules are encoded with a language for expressing any request. 5. Procédé selon la revendication 1 caractérisé en ce que l'étape 200 de création de tables dans la base de données relationnelle utilise, pour le modèle de données de création de ces tables, une logique permettant de faire automatiquement la relation entre une entité de sortie, décrite dans le document WSDL du service web concerné, et une colonne dans une table construite par ledit procédé. 5. Method according to claim 1, characterized in that the step 200 of creation of tables in the relational database uses, for the data model of creation of these tables, a logic making it possible to automatically make the relation between an entity of output, described in the WSDL document of the concerned web service, and a column in a table constructed by said method. 6. Procédé selon la revendication 1 caractérisé en ce qu'il comporte une étape 600 de fourniture d'une réponse, sous forme d'un fichier csv. 6. Method according to claim 1 characterized in that it comprises a step 600 of providing a response in the form of a csv file. 7. Procédé selon la revendication 1 caractérisé en ce qu'il comporte une étape 600 de fourniture d'une réponse, sous forme d'un fichier XML. 7. Method according to claim 1 characterized in that it comprises a step 600 of providing a response in the form of an XML file.
FR1152566A 2011-03-29 2011-03-29 METHOD OF SEARCH OPTIMIZATION ON DATA ACCESSIBLE BY A WEB SERVICE Active FR2973534B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1152566A FR2973534B1 (en) 2011-03-29 2011-03-29 METHOD OF SEARCH OPTIMIZATION ON DATA ACCESSIBLE BY A WEB SERVICE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1152566A FR2973534B1 (en) 2011-03-29 2011-03-29 METHOD OF SEARCH OPTIMIZATION ON DATA ACCESSIBLE BY A WEB SERVICE

Publications (2)

Publication Number Publication Date
FR2973534A1 true FR2973534A1 (en) 2012-10-05
FR2973534B1 FR2973534B1 (en) 2013-04-12

Family

ID=44549020

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1152566A Active FR2973534B1 (en) 2011-03-29 2011-03-29 METHOD OF SEARCH OPTIMIZATION ON DATA ACCESSIBLE BY A WEB SERVICE

Country Status (1)

Country Link
FR (1) FR2973534B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020184219A1 (en) * 2001-05-31 2002-12-05 International Business Machines Corporation System, method, and computer program product for reformatting non-XML data for use with internet based systems
US20060004855A1 (en) * 2004-06-07 2006-01-05 Viktoriya Ivanova System and method for interacting with a persistence layer
US20090055366A1 (en) * 2007-08-23 2009-02-26 International Business Machines Corporation Accessing objects in a service registry and repository using subclass inference

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020184219A1 (en) * 2001-05-31 2002-12-05 International Business Machines Corporation System, method, and computer program product for reformatting non-XML data for use with internet based systems
US20060004855A1 (en) * 2004-06-07 2006-01-05 Viktoriya Ivanova System and method for interacting with a persistence layer
US20090055366A1 (en) * 2007-08-23 2009-02-26 International Business Machines Corporation Accessing objects in a service registry and repository using subclass inference

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BENJAMINS V R ET AL: "Web services: been there, done that?", IEEE INTELLIGENT SYSTEMS, IEEE SERVICE CENTER, NEW YORK, NY, US, vol. 18, no. 1, 1 January 2003 (2003-01-01), pages 72 - 85, XP011095696, ISSN: 1094-7167 *

Also Published As

Publication number Publication date
FR2973534B1 (en) 2013-04-12

Similar Documents

Publication Publication Date Title
Sarvas et al. Metadata creation system for mobile images
CN102880649B (en) A kind of customized information disposal route and system
CN104854583B (en) Search result rank and presentation
US20160070769A1 (en) Ontology harmonization and mediation systems and methods
US11768849B2 (en) Extensible data platform with database domain extensions
Dijkshoorn et al. Modeling cultural heritage data for online publication
FR2809844A1 (en) MULTI-TERMINAL PUBLICATION SYSTEM AND CORRESPONDING METHOD OF IMPLEMENTATION
Kurz et al. Semantic enhancement for media asset management systems: Integrating the Red Bull Content Pool in the Web of Data
Schaffert et al. The linked media framework: Integrating and interlinking enterprise media content and data
EP3343409A1 (en) Method and platform for the elevation of source data into interconnected semantic data
Kurz et al. Lmf: A framework for linked media
FR2973534A1 (en) Method for optimizing searches on data accessible via simple object access protocol-web service definition language web service, involves translating Meta-SQL query to build SQL query on tables in relational database and execute SQL query
Meroño-Peñuela et al. Web data APIS for knowledge graphs: easing access to semantic data for application developers
Makris et al. Federating natural history museums in natural Europe
Edelstein et al. Linked Open Data for Cultural Heritage
Hunger et al. Good Relationships: The Spring Data Neo4j Guide Book
Hoang-Xuan et al. First-flexible interactive retrieval system for visual lifelog exploration
Fink et al. How linked open data can help in locating stolen or looted cultural property
Bergweiler A flexible framework for adaptive knowledge retrieval and fusion for kiosk systems and mobile clients
Buccafurri et al. A Novel Query Language for Data Extraction from Social Networks.
Olijslagers et al. Using synonyms to better data discoverability
Demleitner et al. Using the Virtual Observatory
WO2022197420A1 (en) Extensible data platform with database domain extensions
FR2939538A1 (en) Data sets correspondence searching method for e.g. Google search engine, involves performing iterative comparison of primary set of data with subset of secondary set of data, where comparison step considers similarity graph
WO2024213798A1 (en) Automated device and method for collecting, classifying and hierarchizing a corpus of relational documents

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

RN Application for restoration

Effective date: 20190703

FC Decision of inpi director general to approve request for restoration

Effective date: 20190709

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14