WO2010007228A1 - Adaptive configuration device - Google Patents

Adaptive configuration device Download PDF

Info

Publication number
WO2010007228A1
WO2010007228A1 PCT/FR2009/000745 FR2009000745W WO2010007228A1 WO 2010007228 A1 WO2010007228 A1 WO 2010007228A1 FR 2009000745 W FR2009000745 W FR 2009000745W WO 2010007228 A1 WO2010007228 A1 WO 2010007228A1
Authority
WO
WIPO (PCT)
Prior art keywords
list
code
electronic product
identifiers
identifier
Prior art date
Application number
PCT/FR2009/000745
Other languages
French (fr)
Inventor
Damien Praca
Razmig Sarkissian
Original Assignee
Mobile Distillery
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 Mobile Distillery filed Critical Mobile Distillery
Publication of WO2010007228A1 publication Critical patent/WO2010007228A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Definitions

  • the invention relates to an adaptive computer configuration device.
  • the invention improves the situation.
  • the invention proposes an adaptive configuration device, comprising a storage memory, with code identifiers and parameter data matching code identifiers and electronic product identifiers, a working memory, of its own kind. to receive one or more lists of electronic product identifiers, a parser, able to browse computer program code to retrieve a list of code identifiers, a memory request for storing the parameter data corresponding to a given electronic product identifier and a code identifier, a comparator arranged to define a similarity value between parameter data received in input, and a driver, arranged to: * call the parser with computer program code data received as input to establish a list of work code identifiers;
  • Such a device is extremely advantageous because it allows to group together the devices for which the code is close if not identical. This allows automated and simplified version management, and a great reduction in validation costs.
  • the invention also relates to an adaptive configuration method that comprises: a. receiving one or more lists of electronic product identifiers, with preprogram computer code data; b. calling a parser with said preprogram computer code data to establish a list of work code identifiers; vs. define a current work code identifier; d. define a list of current electronic product identifiers; e. deriving from a storage memory a list of correspondence with the list of current electronic product identifiers and the current code identifier; f. repetitively comparing the data of the parameter data list, to determine one or more new lists of electronic product identifiers whose parameter data satisfy a selected criterion; boy Wut.
  • FIG. 1 represents a schematic view of a device according to the invention
  • Figure 2 shows a schematic diagram of an operation performed by the device of Figure 1
  • FIG. 3 represents an exemplary implementation of an operation of FIG. 2
  • FIG. 4 represents an exemplary implementation of another operation of FIG. 2
  • Figures 5 and 6 show examples of data arrangement processed in the operations of Figures 2 to 4
  • FIG. 7 represents an optional operation of the operation of FIG. 4
  • Fig. 8 shows an exemplary data arrangement resulting from the operation of Fig. 7
  • Figure 9 shows a variant of Figure 1.
  • FIG. 1 represents a schematic view of a device according to the invention.
  • the device 2 comprises a storage memory 4, a working memory 6, a parser 8, a queryer 10, a comparator 12 and a driver 14.
  • the storage memory 4 receives a library dictionary 16 and a knowledge base 18.
  • the working memory 6 receives a file 20 containing computer program code, which is in the example described here of the java code.
  • the file 20 contains pre-program code which is intended to be interpreted according to the telephone on which it is desired to carry the code of the file 20.
  • This code intended to be interpreted is detected by means of keywords which may be method names, variable names, or specific instructions.
  • the invention is therefore not limited to the code in Java, and it can be extended to any type of computer program code that a person skilled in the art will know how to use.
  • the driver 14 calls the parser 8, which uses the dictionary 16 to return a file 22 comprising a list of methods or other keywords identified in the code of the file 20.
  • the working memory 6 also receives a file 24 comprising a list of telephones that one wishes to classify.
  • a file 24 comprising a list of telephones that one wishes to classify.
  • the driver calls the queryer 10 and the comparator 12, which interact with the knowledge base 18 to establish a file 26.
  • the file 26 contains a plurality of phone lists similar to that of the file 24 which have been mail-collected in the device 2, based on the keywords identified in the file 20.
  • the destination devices of] which implement a java virtual machine by means of J2ME.
  • the invention applies to any set of electronic products on which it is desired to carry a port of a generic code.
  • the memories 4 and 6 can be made in any manner known to those skilled in the art, for example in the form of hard disks, CD or DVD type optical memories or other, and are not necessarily physically assembled with the other elements of the device 2. Thus, these memories can be accessed by network, or by any other means known to those skilled in the art.
  • the device 2 starting from a generic pre-program code that one seeks to carry on phones, and a list of such phones, it is possible to establish a plurality of telephone lists. For each list, a port can be made, this porting being identical for all the telephones of the same list.
  • Figure 2 shows a schematic diagram of the operations of the device 2 on the files 20, 22 and 24.
  • the device 2 receives in the memory 6 the files 20 and 24. As we saw above, these are the files that will serve as a basis for grouping phones.
  • the driver 14 calls an Anl () function which will be detailed with FIG. 3.
  • the Anl () function receives as argument the java code of the file 20, and calls the parser to extract keywords from it. contained in the dictionary 16 as seen above. The result is stored in file 22.
  • the driver 14 calls a function Comp () which will be detailed with FIG. 4.
  • the function CompQ receives as argument the keyword file 22 and the file 24 from the list of telephones, and calls the quercher 10 and comparator 12 by accessing knowledge base 18 to group phones by group. In each group, the telephones are identified as a code associated with the keywords of the file 22. All of these groups are returned and stored in the file 26.
  • the operation 300 will now be described with reference to FIG. 3.
  • the operation starts at 302 from the reception of the arguments of the function Anl (), namely the code contained in the file 20.
  • a loop is then started in 304, in which a string Str is extracted from the code.
  • the string Str is searched in the dictionary 16 by means of a function Dic ().
  • the loop ends with a test 310 on the text remaining in the file 20.
  • the loop resumes at 304. Otherwise, the operation 300 ends at 312 with the return of the variable Meth_Lst in the file 22.
  • the searched keywords are names of methods related to the Celsius library.
  • This library makes it possible to produce a code of pre-program in java which is adapted for all the mobile phones of the market. For this, the programmer uses, for items whose implementation is specific to phones, generic methods.
  • this java code "agnostic" can be processed by CELSIUS software, to implement the methods of the library in a specific way to each phone.
  • the dictionary may contain other elements, such as variable names or others. Operation 400 will now be described with reference to receiving the arguments of the Comp () function, namely file 22 with the keyword list MethJLst, and file 24 which includes a list of phones that the we want to group together to make a single port. Then, this list of phone identifiers is stored in a Tel_Lst_Arr array in an operation 403.
  • a double loop begins in 404 with unstacking a current keyword Par file 22.
  • the double loop works as follows: - the first loop is an unstacking of the keywords of the file 22; the second loop is an unstacking of the telephone lists of the Tel_Lst_Arr table.
  • the second loop is used to group together the phones for which the knowledge base indicates that they have a similar port for the current keyword.
  • the current keyword is searched in the knowledge base 18 to determine if it corresponds to a discriminant port.
  • Discriminant port means that two phones that have a different implementation of the code associated with the current keyword require two separate ports. For example, if the keyword is for the type of sound files used, it will be necessary to provide a port for MIDI compatible phones only, and another for MP3 compatible phones. Therefore, the associated keyword is considered as discriminating.
  • the second loop is avoided, and the operation can be extended by an optional boosting operation 408 described with FIG. 7. Then, the first loop ends with a operation 410 in which it is checked whether there remain other keywords to be analyzed.
  • the second loop is started with the retrieval to 412 of a list of Tel_Lst_Tmp telephones from the Tel_Lst_Arr array.
  • the Tel_Lst_Arr table is initialized with the Tel_Lst list of the file 24.
  • the Tel_Lst_Arr table contains a single list of phones, which contains all the phones that one will as it will appear, the number of lists in the table Tel_Lst_Arr increases, as one detects different portings necessary.
  • an array SpI is set to zero in 414.
  • the table SpI is then filled for each telephone in the list Tel_Lst_Tmp with a value indicative of the portage associated with the current keyword Par on each of these. phones.
  • a loop is started at 416 in which the Tel_Lst_Tmp list is popped up to obtain a Tel phone identifier.
  • This operation is followed in 418 by the requestor's call with the Tel identifier and the current keyword By (or an identifier of this keyword) with a function Val ().
  • the function Val () calls the knowledge base 18 with these two parameters and stores the corresponding value in the table SpI.
  • a test checks in 420 if the Tel_Lst_Tmp list has been completely traversed, and therefore whether the set of indicative porting values have been retrieved or not. If there are still phones, operations 416 and 418 are repeated. Otherwise, a Split () function is called in 422.
  • the Split () function takes the SpI array as an argument, and returns a file containing one or more New_Lst phone lists.
  • the purpose of the SplitQ function is to analyze the indicative porting values of the SpI table, and to return as one or more lists in the NewJLst list the identifiers of the telephones, collected by identical porting.
  • the Split () function can be implemented in several ways.
  • the Split () function calls the comparator 12 with each pair of values in the SpI array.
  • the comparator 12 returns each time a value that indicates whether the pair of values is identical or sufficiently similar to achieve a identical porting, and the split () function classifies the identifii according to the similarity value.
  • New_Lst includes the same phone identifiers as Tel_Lst_Tmp. However, in NewJLst, these identifiers are arranged in lists that do not overlap.
  • Operation 422 is a segmentation of the Tel LstJTmp telephone list into one or more lists according to the particular porting requirement.
  • the list New_Lst is identical to the list Tel_Lst_Tmp.
  • the New_Lst file is added to a New_Tel_Lst_Arr file.
  • the Tel_Lst_Arr array, the NewJLst list, and the New_Tel_Lst list can be seen as shown in Figure 5, i.e. as an array of telephone lists.
  • Each list of telephones of these elements can be seen as represented in FIG. 6, that is to say as an array of telephone identifiers.
  • the second loop is extended to 426 with the Tel_Lst_Arr list test. If this list is empty, it means that all lists of Tel_Lst_Arr have been browsed for the current keyword Par, and separated and stored as necessary in the New_Tel_Lst_Arr list.
  • the second loop is then terminated at 428 with the replacement of the list Tel_Lst_Arr by the list New_Tel_Lst_Arr.
  • the test of the operation 410 determines whether all the keywords have been browsed.
  • the Comp () function ends in 430 with the return of file 26 which contains the TelJLst_Arr list. Otherwise, the updated Tel_Lst_Arr list is further analyzed with the following keyword with operation 404.
  • the following keyword With operation 404, we p ⁇ keywords and segment the list successively each time an element indicating the need for a separate port is detected.
  • FIG. 7 represents an exemplary implementation of the optional operation 408. This operation aims to establish a DynJLst dynamization table which makes it possible to reduce the number of telephone lists by reducing the criticality of the indicative carrying values.
  • a keyword might be associated with a screen width, or a phone-specific error correction.
  • this type of difference should be considered as critical, and involve the generation of distinct porting, that is, the segmentation of telephone lists.
  • the operation 408 is very close in its implementation of the second loop of FIG. 4, and the operations 702, 706, 708, 710, 712 and 716 are identical to the operations 412 to 420 and 426.
  • the operations 704 and 718 have the role of keeping the list Tel_Lst_Arr current (it is recalled that the operation 408 does not modify this list, but merely establish dynamization parameters). After operation 718, operation 408 ends in 720.
  • the operation 714 is the call of a function Dyn () which takes as argument the table SpI and adds to the table DynJLst the various values indicative of porting that it contains in correspondence each time of the phone of identifier Tel and the current keyword By correspondents.
  • Figure 8 shows an example of the DynJLst table.
  • the values in the DynJLst table can be relative or absolute.
  • some parameters such as the font size can be set to default values, and the difference between this value and that of each phone should be stored.
  • some settings such as compatible image formats, or the best displayable font are absolute in nature and must be stored individually.
  • Figure 9 shows a variant of Figure 2.
  • optional step 408 is implemented. Thus, it comprises the three operations 200, 300 and 400 described above. These operations are completed by an operation 900 and an operation 920.
  • the operation 900 has the function of generating a telephone determination algorithm.
  • the Tel_Alg_Arr file will contain one or more algorithms that allow the phones to identify the corresponding dynamic data, and one or more databases that contain this dynamic data.
  • the Diff () function can therefore be implemented in many different ways, depending on whether this excess data is taken into account or not.
  • the DynJLst list is thus fully embedded in Tel_Alg_Arr, and integrated into each port.
  • This first implementation is resource intensive, because we will store unnecessary data in each port, and a relatively complex formula (because adapted to the detection of any phone). It has the advantage of offering a unified approach that does not really care about the phone lists established in the previous steps.
  • DynJLst is therefore segmented into a plurality of sub-lists that are specific to each Tel_Lst_Arr phone list.
  • This second implementation is resource-efficient because only the data will be stored for each port, and the identification formula can be simplified (because it is suitable for detecting a phone within a restricted sub-list). ). It has the advantage of offering a personalized approach for each list of phones established in the previous steps.
  • the operation 920 is performed by a function CompileQ, which uses the files 20 and 26 to produce a plurality of files JAR and JAD which correspond to the porting of the code of the file 20 on each phone list. For this, this also allows to produce an offended code.
  • a function CompileQ which uses the files 20 and 26 to produce a plurality of files JAR and JAD which correspond to the porting of the code of the file 20 on each phone list. For this, this also allows to produce an offended code.

Abstract

The invention relates to a device that includes: a storage memory (4) with code identifiers and parameter data correlating them with electronic product identifiers; a working memory (6) that receives one or more electronic product identifier lists; a syntactical analyzer (8); a requestor (10); and a comparator (12). The device also includes a driver (14), equipped for: * calling the syntactical analyzer (8) with computer pre-program code data to set up a working code identifier list; * for each electronic product identifier list from the working memory (6), and for the identifiers from the working code identifier list: repeatedly calling the requestor (10) with each identifier in the electronic product identifier list, and with the current code identifier, in order to set up a parameter data list that correlates with the electronic product identifier list; repeatedly calling the comparator (12) with data from the parameter data list to determine new electronic product identifier lists, the values of similarity therebetween of which verify a selected criterion; and replacing the electronic product identifier list with the new electronic product identifier list or lists.

Description

Dispositif de configuration adaptative Adaptive configuration device
L'invention concerne un dispositif de configuration adaptative informatique.The invention relates to an adaptive computer configuration device.
De nos jours, le nombre de dispositifs électroniques personnels disponibles a explosé. Devant la diversité des systèmes d'exploitation existant, et avec la réduction du temps de vie des produits, l'utilisation de machines virtuelles a explosé.Nowadays, the number of personal electronic devices available has exploded. Faced with the diversity of existing operating systems, and with reduced product life, the use of virtual machines has exploded.
Ainsi, un grand nombre de programmes pour téléphones mobiles sont maintenant codés en java, et plus particulièrement en J2ME. Cependant, malgré la standardisation que le java offre, de nombreux paramètres propres aux téléphones rendent encore nécessaire la production de codes sources personnalisés pour chaque téléphone.Thus, a large number of programs for mobile phones are now coded in Java, and more particularly in J2ME. However, despite the standardization that Java offers, many phone-specific settings still make it necessary to produce custom source codes for each phone.
Pour contourner cet obstacle, des logiciels ont été développés qui fournissent des librairies et ou API java qui peuvent être utilisées pour écrire un programme quelque soit le téléphone, et qui produisent ensuite de tels codes adaptés à chaque téléphone. Un exemple d'un tel logiciel est le logiciel Celsius de Mobile Distillery. Dans ce cas, avant traitement par Celsius, le code est qualifié de "code de pré-programme".To circumvent this obstacle, software has been developed that provides libraries and or java APIs that can be used to write a program regardless of the phone, and then produce such codes adapted to each phone. An example of such software is the Celsius software from Mobile Distillery. In this case, before processing with Celsius, the code is called "preprogram code".
Cependant, même si ces logiciels permettent de simplifier la création du code en offrant une seule source générique, la gestion en aval de la multiplicité de codes binaires résultante est complexe. En outre, chaque code binaire nécessite une validation qui est obtenue par l'achat d'un certificat relativement cher.However, even if these software make it possible to simplify the creation of the code by offering a single generic source, the downstream management of the multiplicity of resulting bit codes is complex. In addition, each binary code requires validation that is obtained by purchasing a relatively expensive certificate.
Produire un programme pour une pluralité de dispositifs mobiles est donc actuellement complexe et onéreux.Producing a program for a plurality of mobile devices is therefore currently complex and expensive.
L'invention vient améliorer la situation.The invention improves the situation.
A cet effet, l'invention propose un dispositif de configuration adaptative, comprenant une mémoire de stockage, avec des identifiants de code et des données de paramètres mettant en correspondance des identifiants de code et des identifiants de produit électronique, une mémoire de travail, propre à recevoir une ou plusieurs listes d'identifiants de produit électronique, un analyseur syntaxique, propre à parcourir du code de programme informatique pour extraire une liste d'identifiants de code, un requêtei mémoire de stockage des données de paramètres correspondant à un identifiant de produit électronique et un identifiant de code donnés, un comparateur, agencé pour définir une valeur de similarité entre des données de paramètres reçues en entrée, et un pilote, agencé pour : * appeler l'analyseur syntaxique avec des données de code de programme informatique reçues en entrée pour établir une liste d'identifiants de code de travail ;For this purpose, the invention proposes an adaptive configuration device, comprising a storage memory, with code identifiers and parameter data matching code identifiers and electronic product identifiers, a working memory, of its own kind. to receive one or more lists of electronic product identifiers, a parser, able to browse computer program code to retrieve a list of code identifiers, a memory request for storing the parameter data corresponding to a given electronic product identifier and a code identifier, a comparator arranged to define a similarity value between parameter data received in input, and a driver, arranged to: * call the parser with computer program code data received as input to establish a list of work code identifiers;
* pour chaque liste d'identifiants de produit électronique reçue dans la mémoire de travail, et pour certains au moins des identifiants de code la liste d'identifiants de code de travail : - appeler répétitivement le requêteur avec chaque identifiant dans la liste d'identifiants de produit électronique et avec l'identifiant de code courant, pour établir une liste de données de paramètres, en maintenant une correspondance avec la liste d'identifiants de produit électronique ; appeler répétitivement le comparateur avec les données de la liste de données de paramètres, pour établir une liste de valeurs de similarité, en maintenant une correspondance avec la liste d'identifiants de produit électronique ; déterminer une ou plusieurs nouvelles listes d'identifiants de produit électronique comprenant chacune des identifiants de produit électroniques dont les valeurs de similarité correspondantes vérifient un critère choisi, et - remplacer dans la mémoire de travail la liste d'identifiants de produit électronique par la ou les nouvelles listes d'identifiants de produit électronique.* for each list of electronic product identifiers received in the working memory, and for at least some of the code identifiers the list of work code identifiers: - repeatedly call the requester with each identifier in the list of identifiers electronic product and with the current code identifier, to establish a list of parameter data, maintaining a correspondence with the list of electronic product identifiers; repetitively calling the comparator with the data of the parameter data list, to establish a list of similarity values, maintaining a correspondence with the list of electronic product identifiers; determining one or more new lists of electronic product identifiers each comprising electronic product identifiers whose corresponding similarity values satisfy a chosen criterion, and - replacing in the working memory the list of electronic product identifiers by the one or more new lists of electronic product identifiers.
Un tel dispositif est extrêmement avantageux car il permet de regrouper entre eux les dispositifs pour lesquels le code est proche sinon identique. Cela permet une gestion des versions automatisée et simplifiée, et une grande réduction des coûts de validation.Such a device is extremely advantageous because it allows to group together the devices for which the code is close if not identical. This allows automated and simplified version management, and a great reduction in validation costs.
L'invention concerne également un procédé de configuration adaptative qui comprend : a. recevoir une ou plusieurs listes d'identifiants de produit électronique, avec des données de code de pré-programme informatique ; b. appeler un analyseur syntaxique avec lesdites données de code de pré-programme informatique, pour établir une liste d'identifiants de code de travail ; c. définir un identifiant de code de travail courant ; d. définir une liste d'identifiants de produit électronique courante ; e. tirer d'une mémoire de stockage une liste correspondance avec la liste d'identifiants de produit électronique courante et l'identifiant de code courant ; f. comparer répétitivement les données de la liste de données de paramètres, pour déterminer une ou plusieurs nouvelles listes d'identifiants de produit électronique dont les données de paramètres vérifient un critère choisi ; g. remplacer la liste d'identifiants de produit électronique courante par la ou les nouvelles listes d'identifiants de produit électronique ; h. répéter les étapes d. à g. jusqu'à ce que toutes les listes d'identifiants de produit électronique aient été traitées ; i. répéter les étapes c. à h. jusqu'à ce que tous les identifiants de code de travail aient été traités.The invention also relates to an adaptive configuration method that comprises: a. receiving one or more lists of electronic product identifiers, with preprogram computer code data; b. calling a parser with said preprogram computer code data to establish a list of work code identifiers; vs. define a current work code identifier; d. define a list of current electronic product identifiers; e. deriving from a storage memory a list of correspondence with the list of current electronic product identifiers and the current code identifier; f. repetitively comparing the data of the parameter data list, to determine one or more new lists of electronic product identifiers whose parameter data satisfy a selected criterion; boy Wut. replace the list of current electronic product identifiers with the new electronic product identifier list (s); h. repeat steps d. to g. until all lists of electronic product identifiers have been processed; i. repeat steps c. at h. until all work code IDs have been processed.
D'autres caractéristiques et avantages de l'invention apparaîtront mieux à la lecture de la description qui suit, tirée d'exemples donnés à titre illustratif et non limitatif, tirés des dessins sur lesquels : la figure 1 représente une vue schématique d'un dispositif selon l'invention ; la figure 2 représente un diagramme schématique d'une opération réalisée par le dispositif de la figure 1 ; - la figure 3 représente un exemple d'implémentation d'une opération de la figure 2 ; la figure 4 représente un exemple d'implémentation d'une autre opération de la figure 2 ; les figures 5 et 6 représente des exemples d'agencement de données traitées dans les opérations des figures 2 à 4 ; - la figure 7 représente une opération optionnelle de l'opération de la figure 4 ; la figure 8 représente un exemple d'agencement de données résultant de l'opération de la figure 7 ; et la figure 9 représente une variante de la figure 1.Other features and advantages of the invention will appear better on reading the following description, taken from examples given for illustrative and non-limiting purposes, taken from the drawings in which: FIG. 1 represents a schematic view of a device according to the invention; Figure 2 shows a schematic diagram of an operation performed by the device of Figure 1; FIG. 3 represents an exemplary implementation of an operation of FIG. 2; FIG. 4 represents an exemplary implementation of another operation of FIG. 2; Figures 5 and 6 show examples of data arrangement processed in the operations of Figures 2 to 4; FIG. 7 represents an optional operation of the operation of FIG. 4; Fig. 8 shows an exemplary data arrangement resulting from the operation of Fig. 7; and Figure 9 shows a variant of Figure 1.
Les dessins et la description ci-après contiennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant. La présente description est de nature à faire intervenir des » par le droit d'auteur et/ou le copyright. Le titulaire des droits n'a pas d'objection à la reproduction à l'identique par quiconque du présent document de brevet ou de sa description, telle qu'elle apparaît dans les dossiers officiels. Pour le reste, il réserve intégralement ses droits.The drawings and the description below contain, for the most part, elements of a certain character. They can therefore not only serve to better understand the present invention, but also contribute to its definition, if any. This description is likely to involve "by copyright and / or copyright. The rights holder has no objection to the identical reproduction by anyone of this patent document or its description, as it appears in the official records. For the rest, he reserves his rights in full.
La figure 1 représente une vue schématique d'un dispositif selon l'invention. Le dispositif 2 comporte une mémoire de stockage 4, une mémoire de travail 6, un analyseur syntaxique 8, un requêteur 10, un comparateur 12 et un pilote 14.FIG. 1 represents a schematic view of a device according to the invention. The device 2 comprises a storage memory 4, a working memory 6, a parser 8, a queryer 10, a comparator 12 and a driver 14.
La mémoire de stockage 4 reçoit un dictionnaire de librairie 16 et une base de connaissance 18. La mémoire de travail 6 reçoit un fichier 20 contenant du code de programme informatique, qui est dans l'exemple décrit ici du code java.The storage memory 4 receives a library dictionary 16 and a knowledge base 18. The working memory 6 receives a file 20 containing computer program code, which is in the example described here of the java code.
Le fichier 20 contient du code de pré-programme qui est destiné à être interprété en fonction du téléphone sur lequel on cherche à porter le code du fichier 20. Ce code destiné à être interprété est détecté au moyen de mots-clés qui peuvent être des noms de méthode, des noms de variables, ou des instructions spécifiques.The file 20 contains pre-program code which is intended to be interpreted according to the telephone on which it is desired to carry the code of the file 20. This code intended to be interpreted is detected by means of keywords which may be method names, variable names, or specific instructions.
L'invention n'est donc pas limitée au code en java, et elle peut être étendue à tout type de code de programme informatique que l'homme du métier saura utiliser.The invention is therefore not limited to the code in Java, and it can be extended to any type of computer program code that a person skilled in the art will know how to use.
Avec le fichier 20, le pilote 14 appelle l'analyseur syntaxique 8, qui utilise le dictionnaire 16 pour retourner un fichier 22 comprenant une liste de méthodes ou d'autres mots-clés identifiés dans le code du fichier 20.With the file 20, the driver 14 calls the parser 8, which uses the dictionary 16 to return a file 22 comprising a list of methods or other keywords identified in the code of the file 20.
La mémoire de travail 6 reçoit également un fichier 24 comprenant une liste de téléphones que l'on souhaite classer. Avec le fichier 22 et le fichier 24, le pilote appelle le requêteur 10 et le comparateur 12, qui interagissent avec la base de connaissance 18 pour établir un fichier 26.The working memory 6 also receives a file 24 comprising a list of telephones that one wishes to classify. With the file 22 and the file 24, the driver calls the queryer 10 and the comparator 12, which interact with the knowledge base 18 to establish a file 26.
Le fichier 26 contient une pluralité de listes de téléphones semblables à celle du fichier 24 qui ont été rassemblés par correspondance dans le dispositif 2, sur la base des mots-clés identifiés dans le fichier 20. Dans l'exemple décrit ici, les dispositifs de destination de ] qui mettent en œuvre une machine virtuelle java au moyen de J2ME. Cependant, l'invention s'applique à tout ensemble de produits électroniques sur lesquels on cherche à réaliser un portage d'un code générique.The file 26 contains a plurality of phone lists similar to that of the file 24 which have been mail-collected in the device 2, based on the keywords identified in the file 20. In the example described here, the destination devices of] which implement a java virtual machine by means of J2ME. However, the invention applies to any set of electronic products on which it is desired to carry a port of a generic code.
Par ailleurs, les mémoires 4 et 6 peuvent être réalisées de toute manière connue de l'homme du métier, par exemple sous la forme de disques durs, de mémoires optiques de type CD ou DVD ou autre, et ne sont pas nécessairement rassemblées physiquement avec les autres éléments du dispositif 2. Ainsi, ces mémoires peuvent être accédées par réseau, ou par tout autre moyen que l'homme du métier connaît.Furthermore, the memories 4 and 6 can be made in any manner known to those skilled in the art, for example in the form of hard disks, CD or DVD type optical memories or other, and are not necessarily physically assembled with the other elements of the device 2. Thus, these memories can be accessed by network, or by any other means known to those skilled in the art.
Ainsi, grâce au dispositif 2, en partant d'un code de pré-programme générique que l'on cherche à porter sur des téléphones, et d'une liste de tels téléphones, on peut établir une pluralité de listes de téléphones. Pour chaque liste, un portage peut être réalisé, ce portage étant identique pour tous les téléphones d'une même liste.Thus, thanks to the device 2, starting from a generic pre-program code that one seeks to carry on phones, and a list of such phones, it is possible to establish a plurality of telephone lists. For each list, a port can be made, this porting being identical for all the telephones of the same list.
La manière avec laquelle le dispositif 2 établit ces listes va maintenant être décrite avec les figures 2 à 9.The manner in which the device 2 establishes these lists will now be described with FIGS. 2 to 9.
La figure 2 représente un diagramme schématique des opérations du dispositif 2 sur les fichiers 20, 22 et 24.Figure 2 shows a schematic diagram of the operations of the device 2 on the files 20, 22 and 24.
Dans une opération 200, le dispositif 2 reçoit dans la mémoire 6 les fichiers 20 et 24. Comme on l'a vu plus haut, ce sont ces fichiers qui vont servir de base au regroupement des téléphones.In an operation 200, the device 2 receives in the memory 6 the files 20 and 24. As we saw above, these are the files that will serve as a basis for grouping phones.
Dans une opération 300, le pilote 14 appelle une fonction Anl() qui sera détaillée avec la figure 3. La fonction Anl() reçoit comme argument le code java du fichier 20, et appelle l'analyseur syntaxique pour en extraire des mots-clés contenus dans le dictionnaire 16 comme vu plus haut. Le résultat est stocké dans le fichier 22.In an operation 300, the driver 14 calls an Anl () function which will be detailed with FIG. 3. The Anl () function receives as argument the java code of the file 20, and calls the parser to extract keywords from it. contained in the dictionary 16 as seen above. The result is stored in file 22.
Ensuite, dans une opération 400, le pilote 14 appelle une fonction Comp() qui sera détaillée avec la figure 4. La fonction CompQ reçoit comme argument le fichier de mots-clés 22 et le fichier 24 de la liste de téléphones, et appelle le requêteur 10 et le comparateur 12 en accédant à la base de connaissance 18 pour regrouper les téléphones par groupe. Dans chaque groupe, les téléphones sont identifiés comn portage d'un code associé aux mots-clés du fichier 22. L'ensemble de ces groupes est renvoyé et stocké dans le fichier 26.Then, in an operation 400, the driver 14 calls a function Comp () which will be detailed with FIG. 4. The function CompQ receives as argument the keyword file 22 and the file 24 from the list of telephones, and calls the quercher 10 and comparator 12 by accessing knowledge base 18 to group phones by group. In each group, the telephones are identified as a code associated with the keywords of the file 22. All of these groups are returned and stored in the file 26.
L'opération 300 va maintenant être décrite en référence à la figure 3. L'opération part en 302 de la réception des arguments de la fonction Anl(), à savoir le code contenu dans le fichier 20.The operation 300 will now be described with reference to FIG. 3. The operation starts at 302 from the reception of the arguments of the function Anl (), namely the code contained in the file 20.
Une boucle est alors lancée en 304, dans laquelle une chaîne de caractères Str est extraite du code. Dans une opération 306, la chaîne Str est recherchée dans le dictionnaire 16 au moyen d'une fonction Dic().A loop is then started in 304, in which a string Str is extracted from the code. In an operation 306, the string Str is searched in the dictionary 16 by means of a function Dic ().
Lorsque la chaîne Str est présente dans le dictionnaire 16, cette chaîne est rajoutée en 308 à la variable Meu\_Lst qui sera retournée en résultat.When the string Str is present in the dictionary 16, this string is added in 308 to the variable Meu \ _Lst which will be returned as a result.
Ensuite, ou lorsque la chaîne Str n'est pas présente dans le dictionnaire 16, la boucle se termine par un test 310 sur le texte restant dans le fichier 20.Then, or when the string Str is not present in the dictionary 16, the loop ends with a test 310 on the text remaining in the file 20.
Si le fichier 20 est non vide, alors la boucle reprend en 304. Sinon, l'opération 300 se termine en 312 avec le renvoi de la variable Meth_Lst dans le fichier 22.If the file 20 is not empty, then the loop resumes at 304. Otherwise, the operation 300 ends at 312 with the return of the variable Meth_Lst in the file 22.
Dans l'exemple décrit ici, les mots-clés recherchés sont des noms de méthodes liées à la librairie Celsius.In the example described here, the searched keywords are names of methods related to the Celsius library.
Cette librairie permet de produire un code de pré-programme en java qui est adapté pour tous les téléphones mobiles du marché. Pour cela, le programmeur fait appel, pour les éléments dont la mise en œuvre est spécifique aux téléphones, à des méthodes génériques.This library makes it possible to produce a code of pre-program in java which is adapted for all the mobile phones of the market. For this, the programmer uses, for items whose implementation is specific to phones, generic methods.
Ensuite, ce code java "agnostique" peut être traité par le logiciel CELSIUS, pour mettre en œuvre les méthodes de la librairie de manière spécifique à chaque téléphone.Then, this java code "agnostic" can be processed by CELSIUS software, to implement the methods of the library in a specific way to each phone.
Dans d'autres modes de réalisation, le dictionnaire peut contenir d'autres éléments, comme des noms de variable ou autres. L'opération 400 va maintenant être décrite en référence à de la réception des arguments de la fonction Comp(), à savoir le fichier 22 avec la liste de mots-clés MethJLst, et le fichier 24 qui comprend une liste des téléphones que l'on souhaite regrouper pour réaliser un portage unique. Ensuite, cette liste d'identifiants de téléphones est stockée dans un tableau Tel_Lst_Arr dans une opération 403.In other embodiments, the dictionary may contain other elements, such as variable names or others. Operation 400 will now be described with reference to receiving the arguments of the Comp () function, namely file 22 with the keyword list MethJLst, and file 24 which includes a list of phones that the we want to group together to make a single port. Then, this list of phone identifiers is stored in a Tel_Lst_Arr array in an operation 403.
Ensuite, une double boucle commence en 404 avec le dépilage d'un mot-clé courant Par du fichier 22. La double boucle fonctionne ainsi : - la première boucle est un dépilage des mots-clés du fichier 22 ; - la deuxième boucle est un dépilage des listes de téléphones du tableau Tel_Lst_Arr.Then, a double loop begins in 404 with unstacking a current keyword Par file 22. The double loop works as follows: - the first loop is an unstacking of the keywords of the file 22; the second loop is an unstacking of the telephone lists of the Tel_Lst_Arr table.
La deuxième boucle permet de regrouper entre eux les téléphones pour lesquels la base de connaissance indique qu'ils ont un portage similaire pour le mot-clé courant.The second loop is used to group together the phones for which the knowledge base indicates that they have a similar port for the current keyword.
Dans une opération 406, le mot-clé courant est recherché dans la base de connaissance 18 pour déterminer s'il correspond à un portage discriminant.In an operation 406, the current keyword is searched in the knowledge base 18 to determine if it corresponds to a discriminant port.
Par portage discriminant on entend le fait que deux téléphones qui ont une mise en œuvre différente du code associé au mot-clé courant nécessitent deux portages distincts. Par exemple, si le mot-clé porte sur le type de fichiers son utilisés, il sera nécessaire de prévoir un portage pour les téléphones compatibles MIDI uniquement, et un autre pour les téléphones compatibles MP3. Dès lors, le mot-clé associé est considéré comme discriminant.Discriminant port means that two phones that have a different implementation of the code associated with the current keyword require two separate ports. For example, if the keyword is for the type of sound files used, it will be necessary to provide a port for MIDI compatible phones only, and another for MP3 compatible phones. Therefore, the associated keyword is considered as discriminating.
Si le mot-clé courant ne correspond pas à un portage discriminant, alors la deuxième boucle est évitée, et l'opération peut être prolongée par une opération de dynamisation 408 optionnelle décrite avec la figure 7. Ensuite, la première boucle se termine avec une opération 410 dans laquelle on vérifie s'il reste d'autres mots-clés à analyser.If the current keyword does not correspond to a discriminant port, then the second loop is avoided, and the operation can be extended by an optional boosting operation 408 described with FIG. 7. Then, the first loop ends with a operation 410 in which it is checked whether there remain other keywords to be analyzed.
S'il est déterminé que le mot-clé courant correspond à un portage discriminant, alors la deuxième boucle est lancée avec la récupération en 412 d'une liste de téléphones Tel_Lst_Tmp à partir du tableau Tel_Lst_Arr.If it is determined that the current keyword corresponds to a discriminant port, then the second loop is started with the retrieval to 412 of a list of Tel_Lst_Tmp telephones from the Tel_Lst_Arr array.
Comme on l'a vu plus haut, le tableau Tel_Lst_Arr est initialisé avec la liste Tel_Lst du fichier 24. Ainsi, lors de la première itération, le tableau Tel_Lst_Arr contient une seule liste de téléphones, qui contient tous les téléphones que l'on comme cela apparaîtra, le nombre de listes dans le tableau Tel_Lst_Arr augmente, au fur et à mesure que l'on détecte différents portages nécessaires.As we saw above, the Tel_Lst_Arr table is initialized with the Tel_Lst list of the file 24. Thus, during the first iteration, the Tel_Lst_Arr table contains a single list of phones, which contains all the phones that one will as it will appear, the number of lists in the table Tel_Lst_Arr increases, as one detects different portings necessary.
Une fois la liste de téléphones courante Tel_Lst_Tmp récupérée, un tableau SpI est mis à zéro en 414. Le tableau SpI est ensuite rempli pour chaque téléphone de la liste Tel_Lst_Tmp avec une valeur indicative du portage associé au mot-clé courant Par sur chacun de ces téléphones.Once the current telephone list Tel_Lst_Tmp has been retrieved, an array SpI is set to zero in 414. The table SpI is then filled for each telephone in the list Tel_Lst_Tmp with a value indicative of the portage associated with the current keyword Par on each of these. phones.
Pour cela, une boucle est lancée en 416 dans laquelle la liste Tel_Lst_Tmp est dépilée pour obtenir un identifiant de téléphone Tel.For this, a loop is started at 416 in which the Tel_Lst_Tmp list is popped up to obtain a Tel phone identifier.
Cette opération est suivie en 418 de l'appel du requêteur avec l'identifiant Tel et le mot-clé courant Par (ou un identifiant de ce mot-clé) avec une fonction Val().This operation is followed in 418 by the requestor's call with the Tel identifier and the current keyword By (or an identifier of this keyword) with a function Val ().
La fonction Val() appelle la base de connaissance 18 avec ces deux paramètres et stocke la valeur correspondante dans le tableau SpI.The function Val () calls the knowledge base 18 with these two parameters and stores the corresponding value in the table SpI.
Ensuite, un test vérifie en 420 si la liste Tel_Lst_Tmp a été entièrement parcourue, et par conséquent si l'ensemble des valeurs indicatives de portage ont été récupérées ou non. S'il reste des téléphones, les opérations 416 et 418 sont répétées. Sinon, une fonction Split() est appelée en 422.Then, a test checks in 420 if the Tel_Lst_Tmp list has been completely traversed, and therefore whether the set of indicative porting values have been retrieved or not. If there are still phones, operations 416 and 418 are repeated. Otherwise, a Split () function is called in 422.
La fonction Split() prend le tableau SpI en argument, et retourne un fichier comprenant une ou plusieurs listes de téléphones New_Lst.The Split () function takes the SpI array as an argument, and returns a file containing one or more New_Lst phone lists.
La fonction SplitQ a pour rôle d'analyser les valeurs indicatives de portage du tableau SpI, et de retourner sous forme d'une ou plusieurs listes dans la liste NewJLst les identifiants des téléphones, rassemblés par portage identique.The purpose of the SplitQ function is to analyze the indicative porting values of the SpI table, and to return as one or more lists in the NewJLst list the identifiers of the telephones, collected by identical porting.
La fonction Split() peut être mise en œuvre de plusieurs manières.The Split () function can be implemented in several ways.
Dans le mode de réalisation décrit ici, la fonction Split() appelle le comparateur 12 avec chaque paire de valeurs du tableau SpI. Le comparateur 12 renvoie à chaque fois une valeur qui indique si la paire de valeurs est identique ou suffisamment similaire pour réaliser un portage identique, et la fonction Split() classe les identifii selon la valeur de similarité.In the embodiment described here, the Split () function calls the comparator 12 with each pair of values in the SpI array. The comparator 12 returns each time a value that indicates whether the pair of values is identical or sufficiently similar to achieve a identical porting, and the split () function classifies the identifii according to the similarity value.
L'homme du métier saura envisager d'autres modes de réalisation de la fonction Split(). On notera qu'en résultat de la fonction Split(), New_Lst comprend les mêmes identifiants de téléphone que Tel_Lst_Tmp. Cependant, dans NewJLst, ces identifiants sont agencés en listes qui ne se recoupent pas.Those skilled in the art will be able to consider other embodiments of the Split () function. Note that as a result of the Split () function, New_Lst includes the same phone identifiers as Tel_Lst_Tmp. However, in NewJLst, these identifiers are arranged in lists that do not overlap.
L'opération 422 est une segmentation de la liste de téléphones Tel LstJTmp en une ou plusieurs listes selon la nécessité de portage particulier. Ainsi, dans le cas où un seul portage convient pour les téléphones de la liste Tel_Lst_Tmp pour le paramètre Par, la liste New_Lst est identique à la liste Tel_Lst_Tmp.Operation 422 is a segmentation of the Tel LstJTmp telephone list into one or more lists according to the particular porting requirement. Thus, in the case where a single port is suitable for Tel_Lst_Tmp telephones for the Par parameter, the list New_Lst is identical to the list Tel_Lst_Tmp.
Ensuite, en 422, le fichier New_Lst est ajouté dans un fichier New_Tel_Lst_Arr. Le tableau Tel_Lst_Arr, la liste NewJLst, et la liste New_Tel_Lst peuvent être vus comme représentés sur la figure 5, c'est-à-dire comme un tableau de listes de téléphones.Then, at 422, the New_Lst file is added to a New_Tel_Lst_Arr file. The Tel_Lst_Arr array, the NewJLst list, and the New_Tel_Lst list can be seen as shown in Figure 5, i.e. as an array of telephone lists.
Chaque liste de téléphones de ces éléments, tout comme la liste TelJLst du fichier 24, peut être vue comme représenté sur la figure 6, c'est-à-dire comme un tableau d'identifiants de téléphones.Each list of telephones of these elements, just like the TelJLst list of the file 24, can be seen as represented in FIG. 6, that is to say as an array of telephone identifiers.
La deuxième boucle se prolonge en 426 avec le test de la liste Tel_Lst_Arr. Si cette liste est vide, cela signifie que toutes les listes de Tel_Lst_Arr ont été parcourues pour le mot-clé courant Par, et séparées et rangées comme nécessaire dans la liste New_Tel_Lst_Arr.The second loop is extended to 426 with the Tel_Lst_Arr list test. If this list is empty, it means that all lists of Tel_Lst_Arr have been browsed for the current keyword Par, and separated and stored as necessary in the New_Tel_Lst_Arr list.
La deuxième boucle est alors terminée en 428 avec le remplacement de la liste Tel_Lst_Arr par la liste New_Tel_Lst_Arr. Le test de l'opération 410 détermine alors si tous les mots-clés ont été parcourus.The second loop is then terminated at 428 with the replacement of the list Tel_Lst_Arr by the list New_Tel_Lst_Arr. The test of the operation 410 then determines whether all the keywords have been browsed.
Si c'est le cas, la fonction Comp() se termine en 430 avec le renvoi du fichier 26 qui contient la liste TelJLst_Arr. Sinon, la liste Tel_Lst_Arr mise à jour est encore analysée avec le mot- clé suivant avec l'opération 404. Ainsi, en partant d'une liste de téléphones globale, on p∑ mots-clés et on segmente la liste successivement à chaque fois qu'un élément indiquant la nécessité d'un portage distinct est détecté.If this is the case, the Comp () function ends in 430 with the return of file 26 which contains the TelJLst_Arr list. Otherwise, the updated Tel_Lst_Arr list is further analyzed with the following keyword with operation 404. Thus, starting from a list of global phones, we pΣ keywords and segment the list successively each time an element indicating the need for a separate port is detected.
A la fin, on obtient une pluralité de listes de téléphones pour lesquels on sait que le même portage peut être réalisé par rapport aux mots-clés trouvés dans le fichier 20.At the end, we obtain a plurality of telephone lists for which it is known that the same port can be made with respect to the keywords found in the file 20.
La figure 7 représente une mise en œuvre exemplaire de l'opération optionnelle 408. Cette opération vise à établir une table de dynamisation DynJLst qui permet de réduire le nombre de listes de téléphones en réduisant la criticité des valeurs indicatives de portage.FIG. 7 represents an exemplary implementation of the optional operation 408. This operation aims to establish a DynJLst dynamization table which makes it possible to reduce the number of telephone lists by reducing the criticality of the indicative carrying values.
Par exemple, il se peut qu'un mot-clé soit associé à une largeur d'écran, ou à une correction d'erreur spécifique à un téléphone. En principe, ce type de différences devrait être considérée comme critique, et impliquer la génération de portages distincts, c'est-à-dire la segmentation des listes de téléphones.For example, a keyword might be associated with a screen width, or a phone-specific error correction. In principle, this type of difference should be considered as critical, and involve the generation of distinct porting, that is, the segmentation of telephone lists.
Cependant, comme il s'agit de modifications légères, comme une valeur à changer ou un court morceau de code à rajouter conditionnellement, il peut être intéressant de les classer comme portage non discriminant, et de prévoir la génération d'informations permettant de gérer les différents cas dans l'opération 408.However, since these are light modifications, such as a value to be changed or a short piece of code to conditionally add, it may be interesting to classify them as non-discriminative porting, and to anticipate the generation of information to manage the variables. different cases in operation 408.
De fait, l'opération 408 est très proche dans sa mise en œuvre de la deuxième boucle de la figure 4, et les opérations 702, 706, 708, 710, 712 et 716 sont identiques aux opérations 412 à 420 et 426.In fact, the operation 408 is very close in its implementation of the second loop of FIG. 4, and the operations 702, 706, 708, 710, 712 and 716 are identical to the operations 412 to 420 and 426.
Les opérations 704 et 718 ont pour rôle la conservation de la liste Tel_Lst_Arr courante (on rappelle que l'opération 408 ne modifie pas cette liste, mais se contente d'établir des paramètres de dynamisation). Après l'opération 718, l'opération 408 se termine en 720.The operations 704 and 718 have the role of keeping the list Tel_Lst_Arr current (it is recalled that the operation 408 does not modify this list, but merely establish dynamization parameters). After operation 718, operation 408 ends in 720.
L'opération 714 est l'appel d'une fonction Dyn() qui prend comme argument le tableau SpI et ajoute à la table DynJLst les différentes valeurs indicatives de portage qu'il contient en correspondance à chaque fois du téléphone d'identifiant Tel et du mot-clé courant Par correspondants. La figure 8 montre un exemple de la table DynJLst. Ainsi été testés et que les téléphones ont été répartis en listes de portage, le logiciel Celsius peut utiliser ces listes ainsi que la table DynJLst pour générer les portages adaptés tenant compte de toutes les spécificités de chaque téléphone.The operation 714 is the call of a function Dyn () which takes as argument the table SpI and adds to the table DynJLst the various values indicative of porting that it contains in correspondence each time of the phone of identifier Tel and the current keyword By correspondents. Figure 8 shows an example of the DynJLst table. Thus tested and that the telephones have been divided into porting lists, the Celsius software can use these lists as well as the DynJLst table to generate the adapted ports taking into account all the specificities of each phone.
On notera que les valeurs de la table DynJLst peuvent être relatives ou absolues. Ainsi, certains paramètres comme la taille de police peuvent être réglés à des valeurs par défaut, et il convient alors de stocker la différence entre cette valeur et celle de chaque téléphone. Inversement, certains paramètres comme les formats d'image compatibles, ou la meilleure police affichable sont de nature absolue et doivent être stockées individuellement.Note that the values in the DynJLst table can be relative or absolute. Thus, some parameters such as the font size can be set to default values, and the difference between this value and that of each phone should be stored. Conversely, some settings such as compatible image formats, or the best displayable font are absolute in nature and must be stored individually.
La figure 9 représente une variante de la figure 2. Dans cette figure, l'étape optionnelle 408 est mise en œuvre. Ainsi, elle comporte les trois opérations 200, 300 et 400 décrites précédemment. Ces opérations sont complétées par une opération 900 et une opération 920.Figure 9 shows a variant of Figure 2. In this figure, optional step 408 is implemented. Thus, it comprises the three operations 200, 300 and 400 described above. These operations are completed by an operation 900 and an operation 920.
L'opération 900 a pour fonction la génération d'un algorithme de détermination de téléphone.The operation 900 has the function of generating a telephone determination algorithm.
En effet, les versions actuelles de J2ME ne permettent pas de déterminer le téléphone sur lequel une machine virtuelle java fonctionne.Indeed, the current versions of J2ME do not make it possible to determine the phone on which a java virtual machine works.
Dès lors, pour permettre d'utiliser les données de la table DynJLst, il faut établir un algorithme, qui permet à chaque téléphone de déterminer les paramètres dynamiques qui lui correspondent.Therefore, to allow the data from the DynJLst table to be used, an algorithm must be established that allows each phone to determine the corresponding dynamic parameters.
Cela est réalisé par une fonction Diff(), qui génère un fichier Tel_Alg_Arr. Le fichier Tel_Alg_Arr va contenir un ou plusieurs algorithmes qui permettent aux téléphones d'identifier les données dynamiques qui leur correspondent, et une ou plusieurs bases de données qui contiennent ces données dynamiques.This is done by a Diff () function, which generates a Tel_Alg_Arr file. The Tel_Alg_Arr file will contain one or more algorithms that allow the phones to identify the corresponding dynamic data, and one or more databases that contain this dynamic data.
Au gré des segmentations de Tel_Lst_Arr, chaque liste particulière va voir son nombre de téléphones diminuer. Ainsi, lors du portage du code du fichier 22 pour cette liste particulière, les données de Dyn Lst sont pour la plupart non reliées aux téléphones particuliers de cette liste.Depending on the segmentations of Tel_Lst_Arr, each particular list will see its number of phones decrease. Thus, when porting the code of the file 22 for this particular list, the data of Dyn Lst are for the most part not connected to the particular telephones of this list.
La fonction Diff() peut donc être mise en œuvre de nombreuses manières différentes, selon que l'on tiendra compte de cette excès de données ou pas. Dans une première mise en œuvre, il n'est pas tenu c informations contenues dans DynJLst ne sont réellement utiles que pour un nombre limité de téléphones. La liste DynJLst est ainsi incorporée entièrement dans Tel_Alg_Arr, et intégrée dans chaque portage.The Diff () function can therefore be implemented in many different ways, depending on whether this excess data is taken into account or not. In a first implementation, it is not necessary that the information contained in DynJLst is only really useful for a limited number of telephones. The DynJLst list is thus fully embedded in Tel_Alg_Arr, and integrated into each port.
Pour permettre aux téléphones d'accéder aux données de Dyn Lst qui les concerne, il est alors utile de prévoir un algorithme ou une formule qui renvoie un indice de chaque téléphone en fonction de ses particularités, cet indice correspondant à un index correspondant dans DynJLst.To allow the telephones to access the data of Dyn Lst which concerns them, it is then useful to envisage an algorithm or a formula which returns an index of each telephone according to its peculiarities, this index corresponding to a corresponding index in DynJLst.
Cette première mise en œuvre est gourmande en ressources, car on va stocker des données inutiles dans chaque portage, ainsi qu'une formule relativement complexe (car adaptée à la détection de n'importe quel téléphone). Elle présente l'avantage d'offrir une approche unifiée qui ne se préoccupe pas vraiment des listes de téléphones établies aux étapes précédentes.This first implementation is resource intensive, because we will store unnecessary data in each port, and a relatively complex formula (because adapted to the detection of any phone). It has the advantage of offering a unified approach that does not really care about the phone lists established in the previous steps.
Dans une deuxième mise en œuvre, il est tenu compte du fait que la plupart des informations contenues dans Dyn_Lst ne sont réellement utiles que pour un nombre limité de téléphones. La liste DynJLst est donc segmentée en une pluralité de sous-listes qui sont particulières à chaque liste de téléphones de Tel_Lst_Arr.In a second implementation, it is taken into account that most of the information contained in Dyn_Lst is only really useful for a limited number of phones. The list DynJLst is therefore segmented into a plurality of sub-lists that are specific to each Tel_Lst_Arr phone list.
Pour permettre aux téléphones d'accéder aux données de la sous-liste qui les concerne, il est alors utile de prévoir un algorithme ou une formule qui renvoie un indice de chaque téléphone en fonction de ses particularités, cet indice correspondant à un index correspondant dans la sous-liste. Une telle formule peut être fortement simplifiée en se basant sur les différences des téléphones entre eux au sein de la sous-liste.To allow the telephones to access the data of the sub-list which concerns them, it is then useful to envisage an algorithm or a formula which returns an index of each telephone according to its peculiarities, this index corresponding to a corresponding index in the sublist. Such a formula can be greatly simplified based on the differences of the phones between them within the sublist.
Cette deuxième mise en œuvre est économe en ressources, car on va stocker uniquement les données utiles à chaque portage, et la formule d'identification peut être simplifiée (car adaptée à la détection d'un téléphone au sein d'une sous-liste restreinte). Elle présente l'avantage d'offrir une approche personnalisée pour chaque liste de téléphones établie aux étapes précédentes.This second implementation is resource-efficient because only the data will be stored for each port, and the identification formula can be simplified (because it is suitable for detecting a phone within a restricted sub-list). ). It has the advantage of offering a personalized approach for each list of phones established in the previous steps.
Enfin, l'opération 920 est réalisée par une fonction CompileQ, qui utilise les fichiers 20 et 26 pour produire une pluralité de fichiers JAR et JAD qui correspondent au portage du code du fichier 20 sur chaque liste de téléphone. Pour cela, cette ce qui permet en outre de produire un code offusqué.Finally, the operation 920 is performed by a function CompileQ, which uses the files 20 and 26 to produce a plurality of files JAR and JAD which correspond to the porting of the code of the file 20 on each phone list. For this, this also allows to produce an offended code.
Grâce au dispositif décrit ci-dessus, il est possible de réduire grandement le nombre d'exécutables différents pour le portage d'une application donnée. Cela présente un nombre conséquent d'avantages, comme la gestion simplifiée des versions, la réduction du nombre de certificats de validation à payer pour certifier la compatibilité du programme, etc.With the device described above, it is possible to greatly reduce the number of different executables for porting a given application. This has a number of benefits, such as simplified versioning, reducing the number of validation certificates to pay to certify program compatibility, and so on.
Ce qui précède a été présenté avec référence particulière aux téléphones mobiles, et au portage d'applications java sur ces téléphones. Il va de soi que l'invention ne se limite ni à ces dispositifs, ni à ce type de langage, et englobe tous les cas où un portage d'un code générique est nécessaire sur un nombre conséquent de dispositifs électroniques.The above has been presented with particular reference to mobile phones, and the porting of java applications on these phones. It goes without saying that the invention is not limited to these devices, nor to this type of language, and encompasses all cases where a port of a generic code is necessary on a large number of electronic devices.
En outre, il conviendra d'apprécier que les variantes décrites plus haut peuvent être combinées entre elles autant que faire ce peu. La liste exhaustive de ces combinaisons n'a pas été listée ici par souci de clarté, et non parce qu'elles n'étaient pas envisagées.In addition, it will be appreciated that the variants described above can be combined with each other as much as do this little. The exhaustive list of these combinations was not listed here for the sake of clarity, and not because they were not considered.
Enfin, de nombreuses modifications apparaîtront à l'homme du métier, comme :Finally, many modifications will appear to those skilled in the art, such as:
- la possibilité de classer directement la liste de mots-clés par criticité de portage dans l'analyseur syntaxique,the possibility of directly classifying the list of keywords by port criticality in the parser,
- la possibilité de classer la liste de mots-clés par criticité de portage avant de commencer à établir le tableau Tel Lst Arr,- the possibility of classifying the list of keywords by porting criticality before starting to establish the Tel Lst Arr array,
- la possibilité de limiter le nombre de listes de téléphones, ce qui force alors à dynamiser le code, - etc.- the possibility of limiting the number of phone lists, which then forces to boost the code, - etc.
L'homme du métier envisagera bien sûr d'autres modifications similaires dans leur portée, qui restent dans l'esprit de l'invention. Those skilled in the art will of course consider other similar modifications in their scope, which remain in the spirit of the invention.

Claims

Revendications claims
1. Dispositif de configuration adaptative, comprenant : une mémoire de stockage (4), avec des identifiants de code et des données de paramètres mettant en correspondance des identifiants de code et des identifiants de produit électronique, une mémoire de travail (6), propre à recevoir une ou plusieurs listes d'identifiants de produit électronique, un analyseur syntaxique (8), propre à parcourir du code de pré-programme informatique pour extraire une liste d'identifiants de code, un requêteur (10), agencé pour déterminer dans la mémoire de stockage des données de paramètres correspondant à un identifiant de produit électronique et un identifiant de code donnés, un comparateur (12), agencé pour définir une valeur de similarité entre des données de paramètres reçues en entrée, un pilote (14), agencé pour :An adaptive configuration device, comprising: a storage memory (4), with code identifiers and parameter data mapping code identifiers and electronic product identifiers, a working memory (6), itself to receive one or more lists of electronic product identifiers, a parser (8), able to browse computer pre-program code to extract a list of code identifiers, a requestor (10), arranged to determine in the parameter data storage memory corresponding to a given electronic product identifier and code identifier, a comparator (12), arranged to define a similarity value between input parameter data, a driver (14), arranged for:
* appeler l'analyseur syntaxique (8) avec des données de code de pré-programme informatique reçues en entrée pour établir une liste d'identifiants de code de travail ;* calling the parser (8) with computer pre-program code data received as input to establish a list of work code identifiers;
* pour chaque liste d'identifiants de produit électronique reçue dans la mémoire de travail (6), et pour certains au moins des identifiants de code de la liste d'identifiants de code de travail : appeler répétitivement le requêteur (10) avec chaque identifiant dans la liste d'identifiants de produit électronique et avec l'identifiant de code courant, pour établir une liste de données de paramètres, en maintenant une correspondance avec la liste d'identifiants de produit électronique ; - appeler répétitivement le comparateur (12) avec les données de la liste de données de paramètres, pour déterminer une ou plusieurs nouvelles listes d'identifiants de produit électronique qui ont des valeurs de similarité entre eux qui vérifient un critère choisi, et remplacer dans la mémoire de travail (6) la liste d'identifiants de produit électronique par la ou les nouvelles listes d'identifiants de produit électronique.for each list of electronic product identifiers received in the working memory (6), and for at least some of the code identifiers of the list of work code identifiers: repetitively calling the requestor (10) with each identifier in the list of electronic product identifiers and with the current code identifier, for establishing a list of parameter data, maintaining a correspondence with the list of electronic product identifiers; repetitively calling the comparator (12) with the data of the parameter data list to determine one or more new lists of electronic product identifiers which have similarity values between them which satisfy a chosen criterion, and replace in the working memory (6) the list of electronic product identifiers by the new electronic product identifier list (s).
2. Dispositif selon la revendication 1, caractérisé en ce que le requêteur (10) et le comparateur (12) sont appelés répétitivement pour des identifiants de code de la liste d'identifiants de code de travail pour lesquels un critère de criticité est établi. 2. Device according to claim 1, characterized in that the requestor (10) and the comparator (12) are called repetitively for code identifiers of the list of work code identifiers for which a criticality criterion is established.
3. Dispositif selon la revendication 1 ou 2, caractérise code de la liste d'identifiants de code de travail pour lesquels un critère de criticité n'est pas établi, le pilote (14) est en outre agencé pour appeler répétitivement le requêteur (10) avec chaque identifiant dans la liste d'identifiants de produit électronique et avec l'identifiant de code courant, pour stocker une liste de données de paramètres, en maintenant une correspondance avec la liste d'identifiants de produit électronique.3. Device according to claim 1 or 2, characterized by the code of the list of work code identifiers for which a criticality criterion is not established, the driver (14) is further arranged to repeatedly call the requestor (10). ) with each identifier in the electronic product identifier list and with the current code identifier, for storing a list of parameter data, maintaining a correspondence with the list of electronic product identifiers.
4. Dispositif selon l'une des revendications précédentes, caractérisé en ce que le code de pré-programme est compilé en une pluralité de codes de programme, à partir de la pluralité de listes d'identifiants de produit électronique établie, et des données de paramètres de code correspondantes.4. Device according to one of the preceding claims, characterized in that the pre-program code is compiled into a plurality of program codes, from the plurality of lists of electronic product identifiers established, and data of corresponding code parameters.
5. Dispositif selon la revendication 4, caractérisé en ce que, pour chacun des identifiants d'une liste donnée, un seul code de programme est compilé.5. Device according to claim 4, characterized in that, for each of the identifiers of a given list, a single program code is compiled.
6. Dispositif selon l'une des revendications précédentes, caractérisé en ce que le code de pré-programme est du code java.6. Device according to one of the preceding claims, characterized in that the pre-program code is java code.
7. Procédé de configuration adaptative, comprenant : a. recevoir une ou plusieurs listes d'identifiants de produit électronique, avec des données de code de pré-programme informatique ; b. appeler un analyseur syntaxique avec lesdites données de code de pré-programme informatique, pour établir une liste d'identifiants de code de travail ; c. définir un identifiant de code de travail courant ; d. définir une liste d'identifiants de produit électronique courante ; e. tirer d'une mémoire de stockage une liste de données de paramètres, en correspondance avec la liste d'identifiants de produit électronique courante et l'identifiant de code courant ; f. comparer répétitivement les données de la liste de données de paramètres, pour déterminer une ou plusieurs nouvelles listes d'identifiants de produit électronique dont les données de paramètres vérifient un critère choisi ; g. remplacer la liste d'identifiants de produit électronique courante par la ou les nouvelles listes d'identifiants de produit électronique ; h. répéter les étapes d. à g. jusqu'à ce que toutes électronique aient été traitées ; i. répéter les étapes c. à h. jusqu'à ce que tous les identifiants de code de travail aient été traités.An adaptive configuration method, comprising: a. receiving one or more lists of electronic product identifiers, with preprogram computer code data; b. calling a parser with said preprogram computer code data to establish a list of work code identifiers; vs. define a current work code identifier; d. define a list of current electronic product identifiers; e. deriving from a storage memory a list of parameter data, in correspondence with the current electronic product identifier list and the current code identifier; f. repetitively comparing the data of the parameter data list, to determine one or more new lists of electronic product identifiers whose parameter data satisfy a selected criterion; boy Wut. replace the list of current electronic product identifiers with the new electronic product identifier list (s); h. repeat steps d. to g. until all electronics have been processed; i. repeat steps c. at h. until all work code IDs have been processed.
8. Procédé selon la revendication 7, dans lequel l'étape c. comprend : c 1. définir un identifiant de code de travail courant ; c2. déterminer une criticité associée à l'identifiant de code de travail courant ; c3. si la criticité déterminée à l'étape c2. ne respecte pas un critère de criticité choisi, répéter l'étape c 1.The method of claim 7, wherein step c. includes: c 1. defining a current work code identifier; c2. determining a criticality associated with the current work code identifier; c3. if the criticality determined in step c2. does not respect a selected criticality criterion, repeat step c 1.
9. Procédé selon la revendication 7, dans lequel l'étape c. comprend : c 1. définir un identifiant de code de travail courant ; c2. déterminer une criticité associée à l'identifiant de code de travail courant ; fl. si la criticité déterminée à l'étape c2. ne respecte pas un critère de criticité choisi, stocker ladite liste de données de paramètres en correspondance avec la liste d'identifiants de produit électronique courante et l'identifiant de code courant ; f2. sinon, comparer répétitivement les données de la liste de données de paramètres, pour déterminer une ou plusieurs nouvelles listes d'identifiants de produit électronique dont les données de paramètres vérifient un critère choisi. The method of claim 7, wherein step c. includes: c 1. defining a current work code identifier; c2. determining a criticality associated with the current work code identifier; fl. if the criticality determined in step c2. does not respect a selected criticality criterion, storing said list of parameter data in correspondence with the current electronic product identifier list and the current code identifier; f2. otherwise, repeatedly comparing the data of the parameter data list, to determine one or more new lists of electronic product identifiers whose parameter data satisfy a selected criterion.
PCT/FR2009/000745 2008-06-24 2009-06-19 Adaptive configuration device WO2010007228A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0803524 2008-06-24
FR0803524A FR2932905B1 (en) 2008-06-24 2008-06-24 ADAPTIVE CONFIGURATION DEVICE

Publications (1)

Publication Number Publication Date
WO2010007228A1 true WO2010007228A1 (en) 2010-01-21

Family

ID=40022101

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2009/000745 WO2010007228A1 (en) 2008-06-24 2009-06-19 Adaptive configuration device

Country Status (2)

Country Link
FR (1) FR2932905B1 (en)
WO (1) WO2010007228A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2349485A (en) * 1999-04-23 2000-11-01 Ibm Applying software patches across multi-platform systems
US6557008B1 (en) * 1999-12-07 2003-04-29 International Business Machines Corporation Method for managing a heterogeneous IT computer complex
FR2880151A1 (en) * 2004-12-24 2006-06-30 Trusted Logic Sa Software e.g. interface library, application porting and developing system, has interfacing unit executing functionality of missing hardware peripheral and driving unit, during temporary emulation, identical to execution of application
US20080127180A1 (en) * 2006-07-31 2008-05-29 James John Glogowski Operating system automated application porting tool

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2349485A (en) * 1999-04-23 2000-11-01 Ibm Applying software patches across multi-platform systems
US6557008B1 (en) * 1999-12-07 2003-04-29 International Business Machines Corporation Method for managing a heterogeneous IT computer complex
FR2880151A1 (en) * 2004-12-24 2006-06-30 Trusted Logic Sa Software e.g. interface library, application porting and developing system, has interfacing unit executing functionality of missing hardware peripheral and driving unit, during temporary emulation, identical to execution of application
US20080127180A1 (en) * 2006-07-31 2008-05-29 James John Glogowski Operating system automated application porting tool

Also Published As

Publication number Publication date
FR2932905A1 (en) 2009-12-25
FR2932905B1 (en) 2010-08-27

Similar Documents

Publication Publication Date Title
US10055493B2 (en) Generating a playlist
US8340796B2 (en) Digital media player and method for facilitating social music discovery and commerce
US9576050B1 (en) Generating a playlist based on input acoustic information
WO2001044887A2 (en) Method for marketing goods or services by electronic means on internet-type networks
FR2826749A1 (en) Object oriented mark-up language editing method where tags are defined by function and result of function in one language and by argument in schema language
US8818337B2 (en) Application of community-defined descriptors to mobile content
CN1980134A (en) Apparatus and method for providing multimedia contents
WO2007034096A1 (en) Method for sorting a set of electronic documents
WO2010007228A1 (en) Adaptive configuration device
FR2901037A1 (en) Reference structural pattern generating method for computer, involves determining reference structural pattern per group of determined primary structural patterns, where reference pattern represents patterns of group
FR2938951A1 (en) METHOD FOR STRUCTURING A DATABASE OF OBJECTS.
WO2007107534A1 (en) Method, device and system for managing structure data in a graphic scene
FR2906382A1 (en) METHODS AND DEVICES FOR OPTIMIZING XML PROCESSING
FR2965952A1 (en) METHOD FOR UPDATING A REVERSE INDEX AND SERVER IMPLEMENTING SAID METHOD
WO2019086782A1 (en) Method, device and program for composing an ordered list of recommended elements
FR3079328A1 (en) METHOD AND SYSTEM FOR CREATING AN IMAGE OF AN APPLICATION
FR3052274A1 (en) TERMINAL FOR THE ESTABLISHMENT OF BROADCAST COMMUNICATIONS WITHIN A GROUP
FR3138222A1 (en) DATA COLLECTION SYSTEM ARCHITECTURE
EP2225853A1 (en) Improved message-based communication system monitor
FR3061574A1 (en) METHOD AND DEVICE FOR EXTRACTING RELEVANT DATA IN THE EXECUTION OF A PROCESS
EP2271051B1 (en) Method for executing an application service in an web environment
FR3139211A1 (en) Method and device for rendering digital content
FR3123479A1 (en) Device and method for processing a digital model of a system
FR2914453A1 (en) Processing rule e.g. pre-processing rule, generating method for e.g. XML document, involves generating processing rule according to difference between base definition and one of definition versions of document
WO2007045797A1 (en) Method, program and device for describing a music file, method and program for comparing two music files with one another, and server and terminal for carrying out these methods

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09797555

Country of ref document: EP

Kind code of ref document: A1