WO2022264316A1 - 情報処理プログラム、情報処理方法および情報処理装置 - Google Patents
情報処理プログラム、情報処理方法および情報処理装置 Download PDFInfo
- Publication number
- WO2022264316A1 WO2022264316A1 PCT/JP2021/022881 JP2021022881W WO2022264316A1 WO 2022264316 A1 WO2022264316 A1 WO 2022264316A1 JP 2021022881 W JP2021022881 W JP 2021022881W WO 2022264316 A1 WO2022264316 A1 WO 2022264316A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information
- incompatibility
- incompatible
- usage
- registrant
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims description 105
- 238000003672 processing method Methods 0.000 title claims description 4
- 238000011156 evaluation Methods 0.000 claims abstract description 69
- 238000000034 method Methods 0.000 claims abstract description 58
- 238000003860 storage Methods 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 27
- 230000001419 dependent effect Effects 0.000 claims abstract description 7
- 238000012937 correction Methods 0.000 claims description 18
- 230000001186 cumulative effect Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000007257 malfunction Effects 0.000 claims 1
- 230000008859 change Effects 0.000 description 66
- 238000010521 absorption reaction Methods 0.000 description 33
- 238000010586 diagram Methods 0.000 description 33
- 238000001514 detection method Methods 0.000 description 19
- 230000014509 gene expression Effects 0.000 description 15
- 238000006243 chemical reaction Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000012423 maintenance Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 102100026338 F-box-like/WD repeat-containing protein TBL1Y Human genes 0.000 description 4
- 101000835691 Homo sapiens F-box-like/WD repeat-containing protein TBL1X Proteins 0.000 description 4
- 101000835690 Homo sapiens F-box-like/WD repeat-containing protein TBL1Y Proteins 0.000 description 4
- 101000800590 Homo sapiens Transducin beta-like protein 2 Proteins 0.000 description 4
- 102100033248 Transducin beta-like protein 2 Human genes 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 239000006096 absorbing agent Substances 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005401 electroluminescence Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- -1 WHERE Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Definitions
- the present invention relates to an information processing program, an information processing method, and an information processing apparatus.
- Information processing systems may use software provided by software vendors.
- software include middleware such as DBMS (Database Management System).
- the source code of the program executed by the information processing system may be created depending on the specifications of the provided software.
- a program may send a request to provided software to invoke a software function, such as sending a SQL statement to a DBMS to invoke a database manipulation function.
- changing software may cause problems in existing programs due to incompatibility between software. For example, an error may occur in sending a request from an existing program to new software due to differences in language specifications for describing requests, such as language specifications for supported SQL statements. Also, for example, the current software and the new software may differ in function or performance for the same request. Therefore, software changes may involve modifying the source code.
- An importance evaluation system has been proposed that evaluates the importance of reusing software components based on the actual usage of the software components. Further, an information processing apparatus has been proposed that accepts solutions to problems from a plurality of users and gives points to the users as rewards for the solutions. Also, a content sharing system has been proposed that accepts content such as images or videos from users, associates advertisements with the posted content, and rewards users according to the number of times the content has been viewed.
- a computer stores incompatibility information that defines a source code rewriting method when changing software, and presents or executes the rewriting method indicated by the stored incompatibility information. We can think of a way to do this.
- the present invention aims to promote the use of incompatible information databases.
- an information processing program causes a computer to execute the following processes.
- Usage information for a database containing incompatibility information indicating a rewriting method for adapting source code dependent on first software to second software and registrant information indicating a registrant of the incompatibility information, the incompatibility information Obtain usage information indicating the user of the incompatible information and the usage result of the incompatible information. Identify the type of usage result indicated by the usage information. At least one of the user indicated by the usage information and the registrant indicated by the registrant information according to the specified type, based on the evaluation criteria information indicating the correspondence between the plurality of usage result types and the plurality of evaluation values Calculate the evaluation value to be given to.
- a computer-executed information processing method is provided.
- an information processing apparatus having a storage unit and a processing unit is provided.
- FIG. 1 is a diagram for explaining an information processing device according to a first embodiment; FIG. It is a figure which shows the example of the information processing system of 2nd Embodiment.
- 2 is a block diagram showing an example of hardware of an information processing device;
- FIG. FIG. 10 illustrates an example flow of non-compatible absorption of database products;
- 2 is a block diagram showing an example of functions of an information processing device;
- FIG. FIG. 10 illustrates an example of an edge table and a syntactically incompatible master table;
- FIG. 3 is a diagram showing an example of source code and syntax tree before conversion; It is a figure which shows the example of attribute information.
- FIG. 10 is a diagram showing an example of a syntax table;
- FIG. 10 is a diagram showing an example of an instruction table;
- FIG. 10 is a diagram showing an example of syntax incompatibility information
- FIG. 4 is a diagram showing an example of source code and syntax tree after conversion
- FIG. 10 is a diagram showing another example of the source code and syntax tree before conversion
- FIG. 10 is a diagram showing another example of syntax incompatibility information
- FIG. 10 is a diagram (continued) showing another example of syntax incompatibility information
- FIG. 10 is a diagram showing an example of performance incompatibility information
- It is a figure which shows the example of SQL syntax information.
- It is a figure which shows the example of a value master table.
- FIG. 10 is a diagram showing an example of a table used for incompatibility information management; It is a figure which shows the example of a point total table.
- 10 is a flow chart showing an example of a procedure for managing incompatibility information
- FIG. 11 is a flowchart (continued) showing an example of a procedure for managing incompatibility information
- FIG. 1 is a diagram for explaining an information processing apparatus according to the first embodiment.
- the information processing apparatus 10 of the first embodiment supports non-compatibility absorption by rewriting source code dependent on certain software so as to be compatible with other software.
- the information processing apparatus 10 manages incompatibility information indicating a method of absorbing incompatibility.
- the information processing device 10 may be a client device or a server device.
- the information processing device 10 may be called a computer, an incompatible information management device, or a software development support device.
- the information processing device 10 has a storage unit 11 and a processing unit 12 .
- the storage unit 11 may be a volatile semiconductor memory such as a RAM (Random Access Memory), or may be a non-volatile storage such as a HDD (Hard Disk Drive) or flash memory.
- the processing unit 12 is, for example, a processor such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or a DSP (Digital Signal Processor). However, the processing unit 12 may include a specific application electronic circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
- the processor executes programs stored in a memory such as a RAM (which may be the storage unit 11), for example.
- a collection of processors may be called a multiprocessor or simply a "processor.”
- Storage unit 11 stores a database containing incompatibility information 13 and registrant information 14 .
- the storage unit 11 also stores a value master table 15 .
- the incompatibility information 13 indicates a rewriting method for rewriting the source code of the program dependent on the first software so as to be compatible with the second software.
- the incompatible information 13 is knowledge information that expresses the knowledge of incompatible absorption in a fixed format.
- the first software corresponds to software before change
- the second software corresponds to software after change.
- the software before and after the change may be a software product provided by a software vendor, or middleware such as a DBMS or a web server. Also, the software before and after the change may be the same type of software provided by different software vendors, or different versions of software provided by the same software vendor.
- the source code may define request messages that indicate requests to the software.
- the request message may be a SQL statement, and the source code may be written in SQL or the SQL procedural language.
- Languages for describing requirements to software before and after the change may be similar but not identical.
- both pre- and post-modification software may support a general-purpose query language such as SQL while extending the query language independently.
- the incompatibility information 13 may indicate the syntactic features that cause the problem and the rewritten syntax.
- the incompatibility information 13 may include a specific instruction indicating a procedure for detecting an incompatible portion in the source code and a rewrite instruction indicating a procedure for rewriting the incompatible portion.
- the incompatibility information 13 resolves syntax incompatibilities, functional incompatibilities or performance incompatibilities, for example.
- Syntax incompatibility is the incompatibility that the syntax that was allowed in the software before the change is not allowed in the software after the change.
- a program with syntax incompatibility sends a request message to the modified software, a transmission error may occur and the modified software fails to execute.
- Functional incompatibility is incompatibility in which the execution result of software after change does not match the execution result of software before change. If a program with functional incompatibilities sends a request message to the modified software, the expected execution results may not be obtained.
- Performance incompatibility is incompatibility in which the execution performance of software after change is lower than that of software before change. When a program with performance incompatibilities sends a request message to modified software, latency can be significantly increased.
- the registrant information 14 indicates the registrant who registered the incompatibility information 13 in the database.
- the registrant is usually the creator who created the incompatible information 13 .
- the registrant information 14 is, for example, a registrant's name or a user ID that identifies the registrant.
- the registrant information 14 may further indicate an approver who verified the validity of the incompatible information 13 when the incompatible information 13 was registered.
- the value master table 15 indicates the correspondence relationship between the type of usage result of the incompatibility information 13 and the evaluation value.
- the value master table 15 may be called evaluation criteria information.
- An evaluation value is a point given to a person concerned who played a role in increasing the value of the incompatible information 13 .
- the role to which the evaluation value is assigned may differ according to the type of usage result, and the assigned evaluation value may differ according to the type of usage result.
- evaluation values may be assigned to multiple roles based on one usage result, and the evaluation values may be different among these multiple roles.
- the type of usage result may include successful absorption of incompatibility from the originally assumed first software to the second software. An evaluation value may be given to the current user and the registrant of the incompatibility information 13 from this usage result. Further, the type of usage result may include applying the incompatibility information 13 to absorption of incompatibility between software different from absorption of incompatibility from the first software to the second software originally assumed. Based on this usage result, an evaluation value may be given to a user who has discovered an application to other software.
- the type of usage result may include partial usage of some information in the incompatible information 13.
- the incompatibility information 13 may include a plurality of incompatibility sub-information indicating rewriting methods for rewriting discontinuous character strings in the source code. In that case, the user may be able to reuse some of the pieces of incompatible sub-information. An evaluation value may be given to the current user and the registrant of the incompatibility information 13 from this usage result.
- the type of usage result may include detection of conflict between the incompatible information 13 and other incompatible information.
- other incompatibility information registered in the database may define syntactic features that cause the second software to fail.
- Other incompatibility information may be performance incompatibility information.
- the source code rewritten according to the rewriting method indicated by the incompatibility information 13 may correspond to the syntactic features indicated by other incompatibility information.
- an evaluation value may be given to the registrant of the incompatible information 13 and to the registrant of the other incompatible information.
- the type of usage result may include a proposal for correction of the incompatibility information 13 . Based on this usage result, an evaluation value may be given to the user who proposed the correction of the incompatible information 13 .
- the processing unit 12 acquires usage information for the database containing the incompatibility information 13.
- the usage information indicates the user of the incompatible information 13 and the usage result of the incompatible information 13 .
- the usage information may include the user's name or a user ID that identifies the user.
- the processing unit 12 may receive usage information from another information processing device operated by the user.
- the processing unit 12 determines the type of usage result indicated by the acquired usage information. Then, based on the value master table 15, the processing unit 12 calculates an evaluation value to be given to one or both of the user indicated by the acquired usage information and the registrant indicated by the registrant information 14 according to the identified type. do.
- the processing unit 12 may store the calculated evaluation value in the storage unit 11 or another storage device. In addition, the processing unit 12 may display the calculated evaluation value on the display device. Also, the processing unit 12 may transmit the calculated evaluation value to another information processing device.
- the processing unit 12 acquires usage information 16 and 17.
- Usage information 16 indicates that user B used incompatibility information 13 to absorb incompatibility from the first software to the second software.
- Usage information 17 indicates that user C discovered that incompatibility information 13 can be applied to incompatibility absorption from the third software to the fourth software.
- the processing unit 12 calculates an evaluation value 18a to be given to the user B, and calculates an evaluation value 18b to be given to the registrant user A.
- the processing unit 12 also calculates an evaluation value 19 to be given to the user C, who is a user, from the usage information 17 .
- the information processing apparatus 10 acquires usage information indicating the user and the usage result of the incompatibility information 13, and based on the value master table 15, Accordingly, an evaluation value to be given to at least one of the user and the registrant is calculated. As a result, the value of registering the incompatible information 13 in the shared database and the value of using the incompatible information 13 are evaluated, and incentives are given to registrants and users. This promotes the use of shared databases containing incompatible information. As a result, knowledge for incompatibility absorption is shared among a plurality of users, and work for incompatibility absorption is made efficient.
- the information processing system of the second embodiment analyzes the source code of a program that uses a database product, and supports correction work when changing the database product that is used.
- Changes in database products include changes between database products provided by different software vendors and changes between different versions provided by the same software vendor. Incompatibilities may exist between database products. Modifying source code to eliminate defects caused by incompatibility is sometimes called incompatibility absorption.
- FIG. 2 is a diagram illustrating an example of an information processing system according to the second embodiment.
- the information processing system of the second embodiment includes a plurality of terminal devices such as terminal devices 31 , 32 and 33 connected to a network 30 and an information processing device 100 .
- the network 30 may include a LAN (Local Area Network) and may include the Internet.
- Terminal devices 31, 32, and 33 are client computers operated by users.
- the information processing device 100 is a server computer accessed from the terminal devices 31 , 32 and 33 .
- the information processing device 100 corresponds to the information processing device 10 of the first embodiment.
- a plurality of terminal devices including terminal devices 31, 32, and 33 are each used by a user who plays a role in incompatible absorption.
- a user may be called an engineer. However, the user may be an organization including multiple engineers.
- the information processing apparatus 100 manages a database that stores incompatibility information and monitors the usage status of the database. In order to promote the use of the database, the information processing apparatus 100 gives points as an incentive to related users according to the usage status. A point may be called an evaluation value. The points given to the user may be used for personnel evaluation of the user.
- Incompatible information is knowledge information shared by multiple users.
- the incompatible information database is a shared database shared by multiple users.
- the incompatibility information is associated with a set of pre-change database product and post-change database product.
- the incompatibility information indicates an identification method for identifying an incompatible portion in the source code and a rewriting method for rewriting the identified incompatible portion so as to eliminate the incompatibility.
- Users include users who register new incompatible information in the database. This user is sometimes called a registrant.
- the terminal device 31 is used, for example, by a registrant.
- the terminal device of the registrant specifies the identifiers of the database products before and after the change, and transmits the incompatibility information to the information processing device 100 .
- users include users who approve new incompatible information. This user is sometimes called the approver.
- Terminal device 32 is used, for example, by an approver. Approver confirms that incompatible information works correctly before it is formally registered in the database. Candidates for the approver may be determined in advance, such as the registrant's boss or an experienced engineer.
- the approver's terminal device transmits an approval message to the information processing apparatus 100 .
- the information processing apparatus 100 waits for an approval message from the approver and officially registers the new incompatibility information in the database.
- users include users who have confirmed that existing incompatible information is applicable to other database products.
- the application to other database products is sometimes called inheritance, and this user is sometimes called the successor applicant.
- Inheritance means that at least one of the database product before change and the database product after change is different.
- the terminal device of the inheritance applicant specifies the identifier of the incompatibility information and the identifier of the database product before and after the change, and transmits an inheritance application message to the information processing device 100 .
- approval by the approver is performed in the same way as in the case of new registration.
- the information processing apparatus 100 waits for an approval message from the approver and associates the requested database product with the incompatibility information.
- the terminal device 33 is used, for example, by the applicant.
- the terminal device of the usage applicant designates the identifier of the incompatibility information and transmits a usage record message to the information processing device 100 .
- users include users who modify existing incompatible information. This user is sometimes called a modifier.
- This user is sometimes called a modifier.
- Bugs in incompatible information also include source code that has been converted according to incompatible information not running correctly in the modified database product. In that case, the user may correct the incompatible information.
- the corrector's terminal device specifies the identifier of the incompatible information and transmits the corrected incompatible information to the information processing device 100 .
- approval by the approver is performed in the same manner as in the case of new registration.
- the information processing apparatus 100 waits for an approval message from the approver and formally registers the corrected incompatibility information in the database.
- users include users who have used part of the information included in existing incompatible information for purposes other than the use of the entire incompatible information.
- part of the incompatible information may be called incompatible sub-information.
- Incompatible sub-information may be embedded within other incompatible information.
- This form of utilization is sometimes called component utilization, and this user is sometimes called a component utilization applicant.
- the terminal device of the component usage applicant designates the identifier of the incompatible sub-information and transmits a usage record message to the information processing device 100 .
- the information processing apparatus 100 may provide the user with a user interface that supports the use of incompatible information, such as searching for available incompatible information.
- the terminal device of the user specifies the identifier of the database product before and after the change, and transmits the pre-conversion source code to the information processing device 100 .
- the information processing device 100 analyzes the source code and checks it against the incompatibility information associated with the specified database product.
- the information processing device 100 notifies the terminal device of the user of the incompatible part in the source code, the matching incompatible information, and the rewriting method for resolving the incompatibility.
- the information processing apparatus 100 may provisionally execute the method of rewriting incompatibility information on the source code and transmit an image of the source code after conversion to the terminal device of the user.
- the work before formally transforming the source code is sometimes called an assessment.
- the information processing apparatus 100 may determine whether the converted source code includes another incompatible part. Other incompatibility information is used for this determination. If the source code after conversion contains another incompatible part, one incompatible information may cause another incompatibility, and two pieces of incompatible information may conflict. In this case, the information processing apparatus 100 also presents the conflicting incompatible information to the user. Presenting other related incompatible information may be referred to as recommending incompatible information, and using two related incompatible information may be referred to as combining incompatible information.
- a user who is presented with conflicting incompatible information may give up on using the original incompatible information, or may use two methods of rewriting incompatible information together.
- the original incompatible information is syntax incompatible information
- the conflicting incompatible information is performance incompatible information.
- Syntax incompatibility information indicates a rewriting method for rewriting syntax that is not supported by the database product after change.
- the performance incompatibility information may indicate a syntax that significantly degrades the execution performance of the database product after the change, and may indicate a rewrite method for resolving the performance degradation.
- the syntactic incompatibility information solves the problem that the source code does not work with the modified database, it may cause another problem that the execution performance is significantly degraded.
- FIG. 3 is a block diagram illustrating an example of hardware of an information processing apparatus.
- the information processing apparatus 100 has a CPU 101, a RAM 102, an HDD 103, a GPU 104, an input interface 105, a medium reader 106 and a communication interface 107 connected to a bus.
- a CPU 101 corresponds to the processing unit 12 of the first embodiment.
- a RAM 102 or HDD 103 corresponds to the storage unit 11 of the first embodiment.
- the terminal devices 31 , 32 and 33 may have hardware similar to that of the information processing device 100 .
- the CPU 101 is a processor that executes program instructions. CPU 101 loads at least part of the programs and data stored in HDD 103 into RAM 102 and executes the programs.
- the information processing device 100 may have multiple processors. A collection of processors may be called a multiprocessor or simply a "processor.”
- the RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the CPU 101 and data used for calculations by the CPU 101 .
- the information processing device 100 may have a type of volatile memory other than RAM.
- the HDD 103 is a nonvolatile storage that stores software programs such as an OS (Operating System), middleware, application software, and data.
- the information processing device 100 may have other types of non-volatile storage such as flash memory and SSD (Solid State Drive).
- the GPU 104 generates images in cooperation with the CPU 101 and outputs the images to the display device 111 connected to the information processing device 100 .
- the display device 111 is, for example, a CRT (Cathode Ray Tube) display, a liquid crystal display, an organic EL (Electro Luminescence) display, or a projector.
- the information processing apparatus 100 may be connected to another type of output device such as a printer.
- the input interface 105 receives input signals from the input device 112 connected to the information processing apparatus 100 .
- the input device 112 is, for example, a mouse, touch panel, or keyboard.
- a plurality of input devices may be connected to the information processing apparatus 100 .
- the medium reader 106 is a reading device that reads programs and data recorded on the recording medium 113 .
- the recording medium 113 is, for example, a magnetic disk, an optical disk, or a semiconductor memory. Magnetic disks include flexible disks (FDs) and HDDs. Optical discs include CDs (Compact Discs) and DVDs (Digital Versatile Discs).
- a medium reader 106 copies the program and data read from the recording medium 113 to another recording medium such as the RAM 102 or HDD 103 .
- the read program may be executed by CPU 101 .
- the recording medium 113 may be a portable recording medium. Recording medium 113 may be used to distribute programs and data. Recording medium 113 and HDD 103 may also be referred to as computer-readable recording media.
- the communication interface 107 is connected to the network 30 and communicates with the terminal devices 31 , 32 and 33 via the network 30 .
- the communication interface 107 may be a wired communication interface connected to a wired communication device such as a switch or router, or a wireless communication interface connected to a wireless communication device such as a base station or access point.
- FIG. 4 is a diagram showing an example flow of non-compatible absorption of database products.
- the information processing system acquires the source code 131 that depends on the database product before change.
- Source code 131 includes SQL statements or SQL procedure code.
- a SQL statement is a database query written using SQL.
- SQL procedural code is a program in a procedural language defined to be consistent with SQL and operates as a stored procedure.
- the information processing system parses the source code 131 and generates a syntax tree 132 .
- the syntax tree 132 is tree-type data that indicates the structure of language elements such as sentences, clauses, phrases, and words.
- the syntax tree 132 generated through syntactic analysis can express the context in which each word appears in the source code 131, unlike the case where only lexical analysis is performed. For example, in SQL sentences and SQL procedure code, even for the same variable, the effective range of the variable may differ depending on the position where the variable is written. Therefore, the syntax tree 132 is useful for incompatible absorption.
- the information processing system need not perform semantic analysis of the source code 131, and the syntax tree 132 need not include semantic information indicating the logical meaning of language elements.
- the information processing system holds, as knowledge information, incompatibility information 133 associated with a set of the pre-change database product and the post-change database product.
- a database product may be identified by a product name and version number pair.
- the incompatibility information 133 includes a sequence of specific instructions and a sequence of rewrite instructions.
- the identification instruction is an instruction for identifying an incompatible portion from the syntax tree 132 that may operate normally in the database product before the change but may cause a problem in the database product after the change.
- the rewrite instruction is an instruction for rewriting the syntax tree 132 so that the incompatible portion specified by the specific instruction does not cause any problem in the database product after the change.
- the information processing system executes the specific instruction included in the incompatibility information 133 for the syntax tree 132 .
- the information processing system executes the rewrite instruction included in the incompatibility information 133 for the syntax tree 132 to absorb the incompatibility. This rewrites the syntax tree 132 so as to eliminate the incompatibility.
- the information handling system generates source code 134 from the rewritten syntax tree 132 .
- the source code 134 is the result of the incompatibility absorption of the source code 131, and is the source code for the database product after modification.
- FIG. 5 is a block diagram showing an example of functions of the information processing apparatus.
- the information processing apparatus 100 has an incompatibility information storage unit 121 and an evaluation information storage unit 122 . These storage units are implemented using the RAM 102 or the HDD 103, for example.
- the information processing apparatus 100 also has an incompatibility information registration unit 123 , an incompatibility detection unit 124 , a usage application reception unit 125 and a point management unit 126 . These processing units are implemented using, for example, the CPU 101 and programs.
- the incompatibility information storage unit 121 stores incompatibility information.
- the incompatibility information storage unit 121 also stores management information for retrieving available incompatibility information from a set of the database product before change and the database product after change.
- the incompatibility information includes syntax incompatibility information and performance incompatibility information.
- a syntax incompatibility is a syntax error in which SQL or SQL procedural language syntax that was allowed in the database product prior to the change is not allowed in the database product after the change.
- the syntax incompatibility information includes a specific instruction indicating a procedure for identifying an incompatible portion from the syntax tree and a rewrite instruction indicating a procedure for rewriting the identified incompatible portion.
- Performance incompatibility means that the performance of the database product after modification is significantly lower than that of the database product before modification for the same function.
- the evaluation information storage unit 122 stores evaluation information for calculating the points of users involved in incompatible information.
- the evaluation information includes master information indicating how points are calculated.
- the point calculation method is determined in advance by the administrator of the information processing system.
- the incompatibility information registration unit 123 receives the identifier of the database product before and after the change and the new incompatibility information from the registrant's terminal device. Then, the incompatibility information registration unit 123 selects an approver candidate, transmits an approval request message, and receives an approval message from the approver's terminal device. The incompatibility information registration unit 123 stores the new incompatibility information in the incompatibility information storage unit 121 in association with the designated database product before and after the change. At this time, the incompatibility information registration unit 123 reports the new registration to the point management unit 126 .
- the incompatibility information registration unit 123 receives the identifier of the incompatibility information and the identifier of the database product before and after the change from the terminal device of the inheritance applicant. Then, the incompatibility information registration unit 123 selects an approver candidate, transmits an approval request message, and receives an approval message from the approver's terminal device. The incompatibility information registration unit 123 updates the management information in the incompatibility information storage unit 121, and associates the specified incompatibility information with the specified database product before and after the change. At this time, the incompatibility information registration unit 123 reports the inheritance to the point management unit 126 .
- the inheritance of existing incompatible information may be made more efficient by having the registrant of the incompatible information do it.
- the inheritance of existing incompatible information is less burdensome than the creation of new incompatible information, giving priority to the registrant of the incompatible information will improve the fairness of evaluation among users. be done. Therefore, the incompatibility information registration unit 123 sets a certain period after the appearance of the new database product as a priority period during which the original registrant can preferentially become a successor applicant for the new database product. If the original registrant does not apply for succession even after the priority period has passed, other users can become succession applicants. Also, within the priority period, the approver at the time of new registration can preferentially become the successor approver.
- the incompatibility information registration unit 123 receives the identifier of the incompatibility information and the corrected incompatibility information from the corrector's terminal device. Then, the incompatibility information registration unit 123 selects an approver candidate, transmits an approval request message, and receives an approval message from the approver's terminal device. The incompatibility information registration unit 123 updates the incompatibility information stored in the incompatibility information storage unit 121 . At this time, the incompatibility information registration unit 123 reports the correction to the point management unit 126 .
- the incompatibility detection unit 124 receives the identifier and source code of the database product before and after the change from the terminal device. Then, the incompatibility detection unit 124 searches the incompatibility information storage unit 121 for incompatibility information corresponding to the specified database product before and after the change. The incompatibility detector 124 also parses the syntax of the source code to generate a syntax tree. The incompatibility detection unit 124 detects an incompatibility by executing a specific instruction included in the syntax incompatibility information on the syntax tree. The incompatibility detection unit 124 returns assessment information including the detected incompatible part and the rewriting method indicated by the syntactic incompatibility information to the terminal device.
- the incompatibility detection unit 124 provisionally executes the rewrite instruction included in the syntax incompatibility information on the syntax tree, and searches for performance incompatibility information that matches the syntax tree after conversion. If matching performance incompatibility information exists, the incompatibility detection unit 124 further includes the performance incompatibility information in the assessment information and recommends the use of the performance incompatibility information. In that case, the incompatibility detection unit 124 reports a combination recommendation to the point management unit 126 .
- the usage application reception unit 125 receives the identifier of the incompatibility information from the terminal device of the usage applicant. Then, the usage application reception unit 125 reports the usage application to the point management unit 126 . The usage application receiving unit 125 also receives the identifier of the incompatible sub-information from the terminal device of the usage applicant. Then, the usage application reception unit 125 reports the usage of the parts to the point management unit 126 .
- the point management unit 126 receives reports from the incompatibility information registration unit 123, the incompatibility detection unit 124, and the usage application reception unit 125.
- the point management unit 126 calculates points given to one or more users for each report according to the master information stored in the evaluation information storage unit 122, and records the calculated points in the evaluation information storage unit 122. .
- the point management unit 126 gives points to the registrant and approver.
- the point management unit 126 gives points to the succession applicant and the current approver.
- the point management unit 126 gives points to the usage applicant and the registrant and approver of the used incompatible information.
- the point management unit 126 gives points to the corrector and the current approver.
- the point management unit 126 gives points to the applicant for use, and to the registrant and approver of the incompatible information including the used incompatible sub-information.
- the point management unit 126 gives points to the registrant and approver of syntax incompatible information and to the registrant and approver of performance incompatible information.
- FIG. 6 is a diagram showing an example of an edge table and a syntactically incompatible master table.
- the incompatibility information storage unit 121 stores an edge table 141 .
- the edge table 141 manages edges representing pairs of database products before change and database products after change.
- the database product before change is sometimes called an incompatible absorber, and the database product after change is sometimes called an incompatible absorber.
- Database products are identified by a product name and version number.
- One record in the edge table 141 corresponds to one edge. Each record contains an edge key, source product and target product.
- An edge key is a bit string that identifies an edge. Different edges are assigned different edge keys. Among the plurality of bits included in the edge key, any one bit has a value of 1 and the other bits have a value of 0. Thus, the edge is identified by the position of the bit whose value is 1.
- An edge key may be called a bitmap.
- the absorption source product is the database product before change
- the absorption destination product is the database product after change.
- an edge key represents an incompatible absorption from version 1 of product 1 to version 2 of product 1.
- An edge key also represents an incompatible absorption from version 1 of product 1 to version 1 of product 2 .
- An edge key also represents an incompatible absorption from version 2 of product 1 to version 2 of product 2 .
- An edge key also represents an incompatible absorption from version 2 of product 1 to version 1 of product 2 .
- the incompatibility information storage unit 121 stores a syntax incompatibility master table 142 .
- the syntax incompatibility master table 142 manages syntax incompatibility information.
- One record of the syntax incompatibility master table 142 corresponds to one syntax incompatibility information.
- Each record contains an incompatible number, a syntactically incompatible name and a reference edge key.
- the incompatible number is an identification number that identifies syntactically incompatible information.
- the syntactic incompatibility name is a character string that simply expresses the characteristics of the incompatible location that is to be detected and rewritten by the syntactic incompatibility information.
- a syntactically incompatible name may be determined by the registrant of the syntactically incompatible information.
- a reference edge key is a bit string that indicates an edge for which syntactic incompatibility information is valid.
- a reference edge key is a disjunction of edge keys assigned to one or more edges for which syntactic incompatibility information is valid.
- edges and syntactically incompatible information are associated in a many-to-many manner via reference edge keys.
- One edge key contains only one bit with a value of 1, and the position of the bit with a value of 1 differs between different edge keys.
- the reference edge key contains n bits with a value of 1.
- FIG. 7 is a diagram showing an example of the source code and syntax tree before conversion.
- a sentence contains a terminal symbol at the end.
- a sentence may contain clauses before terminal symbols.
- a clause contains an imperative word at the beginning and a phrase, expression or word between the imperative word and the terminal symbol.
- Phrases begin with an object-type, preposition, adverb, or parenthesis.
- a phrase may be followed by a phrase, expression or word, and a phrase, expression or word may occur more than once. Phrases may be followed by clauses.
- An expression contains a function name or word followed by an operator.
- a terminal symbol indicates the end of a sentence.
- a terminal symbol may be a semicolon (“;”).
- a word is the smallest linguistic unit that has meaning in a sentence. Words include identifiers, reserved words, function names and operators. Reserved words include command words, object types and other reserved words. An instruction word indicates an instruction such as CREATE or UPDATE. The object type indicates the type of object such as TABLE. Other reserved words are reserved words other than command words and object types, such as BEGIN. Expressions include pairs of words and words joined by operators, and pairs of words and expressions joined by operators. Expressions also include pairs of function names and arguments. Arguments are enclosed in open brackets (“(”) and close brackets (“)”).
- phrases include general phrases, predicate phrases, suffix phrases, definition phrases and unclassified phrases.
- a general phrase is a modifier-object pair. The pair of object type and identifier is a general clause, for example TABLE T1.
- a predicate phrase contains a preposition-object pair, such as FROM T1 and AS T2.
- Predicate phrases also contain pairs of adverbs and objects, such as WHERE C1. Suffixes are enclosed between open and close parentheses and can be used to specify data types and key columns.
- a definition phrase is a language element that specifies the type of a variable, and includes words other than reserved words and reserved words that indicate data types.
- An unclassified phrase is a phrase that does not correspond to any of general phrases, predicate phrases, suffix phrases, and definition phrases.
- the syntax tree 152 shows the syntax of the source code 151.
- Syntax tree 152 is an undirected graph of tree structure.
- Syntax tree 152 includes a plurality of nodes, each representing a language element, and a plurality of edges connecting the nodes into the tree structure. An edge between an upper node and a lower node indicates that the linguistic element corresponding to the lower node is included in the linguistic element corresponding to the upper node. Within the same level, the appearance order of multiple language elements is preserved. The language element corresponding to the left node appears earlier than the language element corresponding to the right node.
- Syntax tree 152 also includes one sentence node, one clause node, two predicate phrase nodes, one expression node and one terminal symbol node.
- Each node has attributes such as language element types and values. In the example syntax tree shown, only some attributes are shown.
- the terminal symbol may be described as ⁇ end'', the general phrase as ⁇ phrase'', the predicate phrase as ⁇ predicate'', the suffix as ⁇ tan'', the definition phrase as ⁇ fixed'', and the unclassified phrase as ⁇ not yet''. be.
- FIG. 8 is a diagram showing an example of attribute information.
- Attribute information 153 is associated with one node of the syntax tree. Attribute information 153 includes location information, classification, classification attribute, type, value, value attribute and line number. However, some item values may not be defined depending on the node type.
- Position information indicates the position of the node in the syntax tree. As will be described later, the position of a node is represented by two-dimensional coordinates including vertical and horizontal positions.
- Classification indicates the highest level classification of sentences, clauses, phrases, expressions, words, and the like.
- the classification attribute indicates the distinction between general nodes and complementary nodes.
- a general node indicates a language element extracted directly from the source code description. Completion nodes indicate language elements that are not explicitly stated in the source code but have been interpretively completed.
- the classification is a group that further subdivides the classification, such as general phrases and imperative words.
- the value is a string of words.
- the value attribute is the type of value. Value attributes include general strings and complement strings.
- the line number is the number of the line where the language element corresponding to the node appears in the source code.
- a syntax tree can be expressed as a two-dimensional tabular syntax table. This makes it easier to specify the position of the node, and to facilitate the description of the identification of the node and the procedure for searching for the node.
- the nodes contained in the syntax tree are arranged in the syntax table according to the following rules.
- FIG. 9 is a diagram showing an example of a syntax table.
- Syntax table 154 is a syntax table equivalent to syntax tree 152 of FIG.
- the position coordinates of the upper left cell of the syntax table 154 are (1, 1).
- the row number indicating the vertical position increases as it moves downward, and the column number indicating the horizontal position increases as it moves to the right.
- the position of each cell is designated by two-dimensional coordinates (row number, column number).
- a node indicating a sentence is placed in the upper left cell of the syntax table 154 .
- the leftmost child node among child nodes directly under a certain node is placed in a cell immediately below the cell corresponding to the node.
- the cell immediately below is a cell with a row number that is one higher and a column number that is the same. Any other node that has the same parent node as a node and is to the right of that node is placed in the cell to the right of the cell corresponding to that node.
- the cell on the right is the cell with the same row number and larger column number.
- the cell in which each node is placed is determined in depth-first order.
- One word node included in the syntax tree is arranged in one column. Therefore, two nodes having a parent-child relationship may have consecutive row numbers, while two nodes having the same parent node may have non-consecutive column numbers. As a result, the word nodes corresponding to the nine words included in the source code 151 are arranged in the first to ninth columns of the syntax table 154 while maintaining the order.
- syntax table 154 and syntax tree 152 are interchangeable.
- the syntax incompatibility information includes one or more specific instructions for searching for nodes satisfying conditions on the syntax tree and one or more rewriting instructions for rewriting some nodes included in the syntax tree.
- FIG. 10 is a diagram showing an example of an instruction table.
- Instruction table 155 provides definitions of instructions that may be used in syntactic incompatibility information.
- One record in the instruction table 155 indicates one instruction.
- One record of the command table 155 includes command, vertical position, horizontal position, search attribute and keyword.
- the vertical position is a condition for the vertical positional relationship between the current node of interest and the target node. + indicates upward direction, - indicates downward direction, n indicates distance from the current node, and * indicates no distance limit.
- the horizontal position may be specified in the format [instruction number]. This indicates that the horizontal position of the node selected by the command with that command number is the starting point of the search. Also, the horizontal position may be specified in a format of [instruction number 1:instruction number 2]. This indicates searching between the horizontal position of the node selected by the instruction with instruction number 1 and the horizontal position of the node selected by the instruction with instruction number 2.
- a search attribute is a condition for a classification, classification attribute, type and value attribute of a target node.
- a keyword is information other than search attributes for identifying a node.
- a keyword may be an identifier as a word value.
- an instruction number of an executed instruction may be specified. This indicates to reselect the node identified by the instruction.
- No action means to proceed to the next command.
- RET indicates to execute the next instruction and return to the instruction if the result of the next instruction is false. If no node satisfying the condition is found in the next instruction, the result of the next instruction is determined to be false.
- another instruction itself using the attribute information of the current node of interest may be specified as an action.
- the commands include FETCH, SEARCH, POP, GET PRM, SET PRM, ! , DELETE, CREATE, and MODIFY.
- FETCH, SEARCH, POP, GET PRM, SET PRM, ! can be used as a specific instruction.
- DELETE, CREATE, MODIFY can be used as rewrite commands.
- FETCH is an instruction to search for a node that satisfies a condition and change the current node of interest (current node) to the detected node.
- SEARCH is a command that searches for a node that satisfies a condition, but does not change the current node.
- POP is an instruction that returns the current node to the node selected by the executed FETCH.
- GET PRM is an instruction to store the attribute information of nodes that satisfy the conditions in the stack.
- SET PRM is an instruction to output attribute information saved in the stack. SET PRM may be used within the FETCH or SEARCH keywords. ! is a negation instruction that inverts true/false. Before SEARCH! is added, the result of the instruction is determined to be true when no node that satisfies the condition is detected.
- DELETE is an instruction to delete a specified range of nodes from the syntax tree based on the current node.
- CREATE is an instruction to insert a subtree before or after the current node. The subtree to be inserted is saved as CREATE information separately from the instruction string.
- CREATE has as an argument a CREATE information number that identifies CREATE information.
- MODIFY is an instruction to rewrite the attribute information of the current node.
- a regular expression program can be specified in the action.
- syntactic incompatibility information is first searched for the most characteristic keyword related to the incompatible part.
- the first keyword is sometimes called the anchor, and searching for the anchor from the syntax tree is sometimes called the anchor search.
- Syntactic incompatibility information searches around the anchor in the syntax tree for surrounding nodes with attributes that satisfy the condition. As a result, a node set that forms an incompatible portion is identified.
- the feature of the incompatible part is sometimes called a unique condition.
- the syntactically incompatible information searches for a node to be rewritten using any of the detected nodes as a base point.
- a base point may be an anchor.
- FIG. 11 is a diagram showing an example of syntax incompatibility information.
- the syntax incompatibility information 156 is stored in the incompatibility information storage unit 121 .
- Syntax incompatibility information 156 is an example of syntax incompatibility information applied to syntax tree 152 shown in FIG.
- One record of the syntax incompatibility information 156 corresponds to one specific instruction or one rewrite instruction.
- Each record of syntactic incompatibility information 156 includes instruction number, instruction attribute, instruction, vertical position, horizontal position, search attribute, keyword and action.
- the instruction number is an ascending natural number that indicates the execution order of the instruction.
- the command attribute indicates a distinction between a specific command and a rewrite command.
- Vertical position, horizontal position, search attributes and keywords are the arguments of the command.
- An action indicates what to do if the result of an instruction is true.
- Syntax incompatibility information 156 includes eight instructions from the first instruction to the eighth instruction.
- the first to seventh instructions are specific instructions, and the eighth instruction is a rewrite instruction.
- the first command searches for a node whose type is command word and whose value is SELECT, and selects it as the current node.
- the second command retrieves a node whose vertical position is one level above the current node and whose classification is clause, and selects it as the current node.
- the third command retrieves a node whose vertical position is one level below the current node and whose type is predicate phrase, and selects it as the current node. If there are multiple nodes corresponding to the third instruction, one node is selected and the following fourth instruction is executed. If the result of the fourth instruction is false, then we go back to the third instruction and select another node.
- the fourth command retrieves a node whose vertical position is one level below the current node, whose classification is word and whose value is WHERE.
- the fifth command searches for a node whose vertical position is one level below the current node and whose type is an expression, and selects it as the current node.
- the sixth instruction retrieves a node whose vertical position is one level below the current node, whose classification is word and whose value is equal sign.
- the seventh command searches for a node whose vertical position is one level below the current node, whose horizontal position is to the right of the node detected by the sixth command, and whose type is the quoted identifier, and selects it as the current node.
- the eighth instruction adds ::NUMERIC specified by the CREATE information number in the action column to the right of the current node.
- syntactically incompatible information may contain two or more pieces of incompatible sub-information. Therefore, an incompatible sub-number identifying the incompatible sub-information is assigned to a range of instructions belonging to the same incompatible sub-information. If the syntactically incompatible information is not divided into two or more incompatible sub-information, the entire syntactically incompatible information is interpreted as one incompatible sub-information. For example, the first to eighth instructions included in the syntactically incompatible information 156 belong to the same incompatible sub-information, and one incompatible sub-number is assigned to the range of the first to eighth instructions. be.
- FIG. 12 is a diagram showing an example of source code and syntax tree after conversion.
- Incompatibility detector 124 generates syntax tree 158 by executing syntax incompatibility information 156 on syntax tree 152 .
- Syntax tree 158 also includes one sentence node, one clause node, two predicate phrase nodes, two expression nodes and one terminal symbol node.
- Syntax tree 158 corresponds to source code 157 .
- FIG. 13 is a diagram showing another example of the source code and syntax tree before conversion.
- Syntax tree 162 shows the syntax of source code 161 .
- This SQL statement contains a subquery below WHERE EXISTS and has a complicated syntax.
- Syntax tree 162 also includes 1 sentence node, 2 clause nodes, 6 predicate phrase nodes, 1 postfix phrase node, 1 unclassified phrase node, 4 expression nodes and 1 Contains terminal symbol nodes.
- FIG. 14 is a diagram showing another example of syntax incompatibility information.
- the syntax incompatibility information 163 is stored in the incompatibility information storage unit 121 .
- Syntax incompatibility information 163 is an example of syntax incompatibility information applied to the syntax tree 162 of FIG. Assume that the data type NUMBER is not supported by the modified database product, and that the syntax incompatibility is resolved by converting the data type from NUMBER to NUMERIC.
- the syntax incompatibility information 163 includes 19 instructions from the 1st instruction to the 19th instruction.
- the first to fourth instructions are specific instructions for searching for the first data type, and the fifth to sixth instructions are rewrite instructions for rewriting the first data type.
- the 7th to 17th instructions are specific instructions for searching for the second data type, and the 18th to 19th instructions are rewrite instructions for rewriting the second data type.
- the 1st to 6th instructions belong to the first incompatible sub-information
- the 7th to 19th instructions belong to the second incompatible sub-information.
- the first command searches the syntax tree 162 for a node whose type is command word and whose value is SELECT, and selects it as the current node.
- the second command retrieves a node whose vertical position is above the current node and whose classification is clause, and selects it as the current node.
- the third command retrieves a node whose vertical position is one node below the current node, whose horizontal position is to the right of SELECT of the first command, and whose classification is an expression, and selects it as the current node.
- the fourth command searches for a node whose vertical position is one level below the current node, whose horizontal position is to the right of the current node, whose type is data type and whose value is NUMBER, and selects it as the current node. If the result of the fourth instruction is false, return to the third instruction.
- the fifth instruction deletes the current node.
- the sixth instruction creates a new node whose type is data type and whose value is NUMERIC and inserts it at the position of the deleted node.
- FIG. 15 is a diagram (continued) showing another example of syntax incompatibility information.
- the seventh command returns the current node to the SELECT node selected by the first command.
- the eighth instruction retrieves a node whose vertical position is one level below the current node and whose type is predicate phrase, and selects it as the current node.
- the ninth command retrieves a node whose vertical position is one level below the current node, whose horizontal position is to the right of the current node, and whose classification is formula, and selects it as the current node. If the result of the ninth instruction is false, return to the eighth instruction.
- the tenth command retrieves a node whose vertical position is one node below the current node, whose horizontal position is to the right of the current node, and whose type is a conjunction, and selects it as the current node. If the result of the tenth instruction is false, return to the ninth instruction.
- the eleventh command searches for a node whose vertical position is one level below the current node, whose horizontal position is to the right of the current node, and whose classification is clause, and selects it as the current node. If the result of the 11th instruction is false, return to the 10th instruction.
- the twelfth command retrieves a node whose vertical position is one level below the current node, whose type is command word, and whose value is SELECT. If the result of the 12th instruction is false, return to the 11th instruction.
- the thirteenth instruction is above the SELECT of the twelfth instruction, retrieves a node whose classification is clause, and selects it as the current node. If the result of the 13th instruction is false, return to the 12th instruction.
- the 14th instruction searches for a node whose vertical position is one level below the current node, whose horizontal position is to the right of the clause of the 11th instruction, and whose type is predicate phrase, and selects it as the current node.
- the fifteenth command retrieves a node whose vertical position is one node below the current node, whose horizontal position is to the right of SELECT of the twelfth command, and whose classification is an expression, and selects it as the current node. If the result of the fifteenth instruction is false, return to the fourteenth instruction.
- the 16th instruction retrieves a node whose vertical position is one level below the current node, whose horizontal position is to the right of the clause of the 13th instruction, and whose classification is formula, and selects it as the current node. If the result of the 16th instruction is false, return to the 15th instruction.
- the 17th instruction searches for a node whose vertical position is one level below the current node, whose horizontal position is to the right of the predicate of the 14th instruction, whose type is data type and whose value is NUMBER. select. If the result of the 17th instruction is false, return to the 16th instruction.
- the eighteenth instruction deletes the current node.
- the nineteenth instruction creates a new node whose type is data type and whose value is NUMERIC and inserts it at the position of the deleted node.
- complex syntactically incompatible information may be divided into two or more incompatible sub-information.
- Incompatible sub-information with high reusability may be diverted for purposes different from the original syntactically incompatible information, and may also be diverted to other syntactically incompatible information.
- FIG. 16 is a diagram showing an example of performance incompatibility information.
- the performance incompatibility information 164 is stored in the incompatibility information storage unit 121 .
- Performance incompatibility information 164 includes performance incompatibility name, performance incompatibility number, edge key, SQL syntax, total number of records, number of processed records, phenomenon index, pre-change response, post-change response, pre-change throughput, and post-change throughput. .
- the performance incompatibility information 164 includes the pre-change CPU usage rate, post-change CPU usage rate, pre-change CPU waiting ratio, post-change CPU waiting ratio, pre-change I/O amount, post-change I/O amount, hardware and Including resolution method.
- a performance incompatibility name is a name that simply expresses the cause of the performance incompatibility.
- the performance incompatibility number is an identification number that identifies the performance incompatibility information 164 .
- the edge key identifies the set of source and destination products to which the performance incompatibility information 164 applies.
- SQL syntax is the syntax of SQL statements where performance incompatibilities occur.
- the total number of records is the number of records stored in the database product when the performance incompatibility was discovered.
- the number of records processed is the number of records processed by the SQL statement when the performance incompatibility was found.
- a symptom index is a set of flags that indicate the type of performance degradation that occurred in a database product. For example, the least significant bit represents an increase in CPU utilization, the second-to-bottom bit represents an increase in CPU latency, and the third-to-bottom bit represents an increase in I/O volume.
- One performance incompatibility may cause two or more types of performance degradation phenomena.
- the pre-change response is the response time to the SQL statement measured with the database product before the change.
- the post-change response is the response time to the SQL statement measured by the database product after change.
- the throughput before change is the number of records processed per unit time measured by the database product before change.
- the post-change throughput is the number of records processed per unit time measured by the post-change database product.
- the pre-change CPU usage rate is the CPU usage rate measured by the database product before change.
- the post-change CPU usage rate is the CPU usage rate measured by the database product after the change.
- the pre-change CPU waiting ratio is the ratio of the CPU waiting time measured in the database product before the change.
- the ratio of CPU waiting time is the ratio of waiting time during which the CPU waits for a response from the storage device to the time required for processing the SQL statement.
- the CPU waiting ratio after change is the ratio of CPU waiting time measured in the database product after change.
- the pre-change I/O volume is the amount of data transmitted to and from the storage device measured by the database product before change.
- the post-change I/O volume is the amount of data sent to and from the storage device measured by the database product after the change.
- Hardware is the specification of the hardware used when the performance incompatibility was discovered. Hardware specifications include, for example, the number of CPU cores, the clock frequency, the type of storage device that stores records, and the like.
- the resolution method is a description of a countermeasure to resolve the performance incompatibility. The resolution method may be a method of rewriting the SQL sentence.
- FIG. 17 is a diagram showing an example of SQL syntax information.
- the SQL syntax information 165 is stored in the incompatibility information storage unit 121 .
- the SQL syntax information 165 represents the features of SQL statements that cause performance incompatibilities.
- SQL syntax information 165 is associated with performance incompatibility information 164 .
- SQL syntax information 165 includes SQL syntax number, performance incompatibility number, BOW (Bag of Words) vector and keyword list.
- the SQL syntax number is an identification number that identifies the SQL syntax information 165.
- the performance incompatibility number is an identification number of performance incompatibility information indicating performance incompatibility caused by the SQL syntax indicated by the SQL syntax information 165 .
- the BOW vector is a vector listing the keywords and the number of occurrences of the keywords included in the SQL statements that cause performance incompatibility.
- the keyword list is a list in which the keywords included in the SQL statements that cause performance incompatibilities are arranged in the order in which they appear in the SQL statements. Note that keywords that do not affect the occurrence of performance incompatibilities are excluded from the BOW vector and keyword list.
- a BOW vector is generated that indicates one WHERE, one quoted identifier, one ::, and one NUMERIC.
- a keyword list showing the order of appearance of WHERE, quoted identifier, ::, and NUMERIC is generated.
- the incompatibility detection unit 124 parses the source code 151 and generates a syntax tree 152 when the source code 151 is subject to incompatibility absorption.
- the incompatibility detector 124 tentatively executes the specific instruction and the rewrite instruction of the syntax incompatibility information 156 on the syntax tree 152 to convert the syntax tree 152 into a syntax tree 158 .
- the incompatibility detection unit 124 collates the syntax tree 158 with the keyword list of the SQL syntax information 165 to determine whether the syntax tree 158 includes the SQL syntax of the SQL syntax information 165 .
- the incompatibility detection unit 124 scans word nodes, which are leaf nodes of the syntax tree 158, from left to right. Incompatibility detector 124, while traversing the term nodes of syntax tree 158, determines whether the keywords contained in the keyword list appeared in that order. If all the keywords included in the keyword list appear in that order, the incompatibility detector 124 determines that the syntax tree 158 contains the SQL syntax of the SQL syntax information 165 . In this case, the incompatibility detector 124 determines that there is a risk of performance incompatibility indicated by the performance incompatibility information 164 when the source code 151 is rewritten according to the syntax incompatibility information 156 .
- the incompatibility detection unit 124 determines that the syntax tree 158 does not include the SQL syntax of the SQL syntax information 165. In this case, the incompatibility detector 124 determines that the performance incompatibility indicated by the performance incompatibility information 164 will not occur even if the source code 151 is rewritten according to the syntax incompatibility information 156 .
- word nodes with keywords WHERE, '1', ::, NUMERIC included in the syntax tree 158 correspond to the keyword list of the SQL syntax information 165 . Therefore, the incompatibility detection unit 124 determines that there is a risk of performance incompatibility.
- the incompatibility detection unit 124 presents the performance incompatibility information 164 to the user together with the incompatibility part included in the source code 151 and the method of rewriting the syntax incompatibility information 156 .
- FIG. 18 is a diagram showing an example of the value master table.
- the evaluation information storage unit 122 stores a value master table 143.
- FIG. The value master table 143 corresponds to the value master table 15 of the first embodiment.
- the value master table 143 defines a calculation method for points given to users.
- Value master table 143 contains reference points. For example, the reference point is 100 points.
- the value master table 143 includes new registration points and new approval points. New approval points are given to registrants when newly registering incompatible information. New approval points are given to approvers of registered incompatible information. New enrollment points and new approval points are defined as a percentage of the baseline points. For example, the newly registered points are 100% of the reference points, and the new approval points are 90% of the reference points.
- the value master table 143 includes inheritance application points and inheritance approval points.
- Inheritance application points are given to the succession applicant when inheriting existing incompatible information.
- Inheritance approval points are awarded to approvers of inheritance of incompatible information.
- Inheritance application points and inheritance approval points are defined as percentages of reference points. For example, inheritance application points are 2% of the reference points, and inheritance approval points are 1% of the reference points.
- the value master table 143 includes usage application points, usage registrant points, and usage approver points.
- Use application points are given to the use applicant when the incompatible information is simply used or when parts are used.
- the registrant point at the time of use is given to the registrant of the used incompatible information.
- Approver points at the time of use are given to the approver of the used incompatible information.
- Use application points, use-time registrant points, and use-time approver points are defined as percentages of reference points. For example, the usage application points are 10% of the reference points, and the usage registrant points and usage approver points are 1% of the reference points.
- the usage application points are multiplied by the user side coefficient described later.
- the registrant points at the time of use and the approver points at the time of use are multiplied by a creator coefficient, which will be described later.
- the user-side coefficient and the creator-side coefficient change depending on the cumulative number of uses of the incompatible information.
- the user-side coefficient becomes smaller as the cumulative number of times of use increases. Therefore, incompatible information with less track record of use has a larger use application point.
- the greater the cumulative number of uses the larger the creator-side coefficient. Therefore, incompatible information with a large number of usage records will have greater points for registrants when used and points for approvers when used. In this way, the point at the time of using incompatible information is asymmetric between the user side and the creator side.
- the value master table 143 includes correction points and correction approval points. Correction points are given to the corrector when correcting incompatible information. Correction approval points are awarded to approvers of corrected incompatible information. Correction points and correction approval points are defined as a percentage of the reference points. For example, the correction points are 100% of the reference points, and the correction approval points are 90% of the reference points.
- the value master table 143 includes registrant points at the time of combination and approver points at the time of combination.
- registrant points are given to each registrant of incompatible information when a recommendation is made to combine the two pieces of incompatible information.
- Merging approver points are awarded to the approver of each incompatible information.
- Points are awarded for combining recommendations without waiting for applications for incompatible information to detect potential incompatibilities at an early stage, prevent problems, and reduce incompatibilities. This is because the favorable effect of suppressing is exhibited.
- Combined registrant points and combined approval points are defined as percentages of reference points. For example, combined registrant points and combined approval points are 1% of the base points.
- the registrant points at the time of merging and the approver points at the time of merging are multiplied by the creator's coefficient, which will be described later.
- the coefficient on the creation side increases as the number of recommendations increases. Therefore, incompatible information with a large number of records of merging results in larger registrant points and approver points at merging.
- the value master table 143 includes basic coefficients, user-side adjustment coefficients, and creator-side adjustment coefficients.
- the basic coefficient is the initial value of the user-side coefficient and the creator-side coefficient.
- the user-side adjustment coefficient is the amount of decrease in the user-side coefficient per use.
- the creation-side adjustment coefficient is the amount of increase in the creation-side coefficient per use. For example, the basic coefficient is 1, the user side adjustment coefficient is 0.001/time, and the creation side adjustment coefficient is 0.001/time.
- the user side coefficient is calculated as basic coefficient - (cumulative number of times of use - 1) x user side adjustment coefficient. Therefore, the user-side coefficient at the time of first use matches the basic coefficient, and the user-side coefficient decreases as the cumulative number of times of use increases. However, the lower limit of the user-side coefficient is zero.
- the production side adjustment coefficient is calculated as follows: basic coefficient + (cumulative number of times of use - 1) x production side adjustment coefficient. Therefore, the creation-side coefficient at the time of first use matches the basic coefficient, and the creation-side coefficient increases as the cumulative number of times of use increases. However, the upper limit of the creation side coefficient may be set.
- FIG. 19 is a diagram showing an example of a table used for incompatibility information management.
- the evaluation information storage unit 122 stores a registered usage status table 144 .
- One record of the registration usage status table 144 corresponds to one piece of incompatible sub-information or one piece of performance incompatibility information.
- Each record of the registration usage status table 144 includes a number, number of times of use, initial registrant, initial approver, maintenance right holder, and maintenance approval right holder.
- the number is an incompatible sub-number identifying incompatible sub-information or a performance incompatible number identifying performance incompatible information.
- the number of times of use is the accumulated number of times of use of the information.
- Simple usage of syntactically incompatible information means usage of all incompatible sub-information contained in the syntactically incompatible information.
- the initial registrant is the user name of the registrant who registered the information in the incompatibility information storage unit 121 .
- the initial approver is the user name of the approver who approved the information at the time of registration.
- the maintenance right holder is the user name of the user who inherited the status of the registrant. If the initial registrant leaves the non-compatible absorption business, the initial registrant and the maintenance right holder do not match. In that case, the maintenance right holder has the right to be the successor applicant on behalf of the initial registrant.
- the maintenance approval right holder is the user name of the user who has inherited the status of the approver. If the initial approver leaves the non-compatible absorption business, the initial approver does not match the maintenance approver. In that case, the maintenance approver has the right to be the successor approver in place of the initial approver.
- the evaluation information storage unit 122 stores a connection status table 145 .
- One record of the join status table 145 corresponds to a set of syntax incompatibility information and performance incompatibility information.
- Each record of the connection status table 145 includes a syntax incompatibility number, a performance incompatibility number, and the number of recommendations.
- the syntactic incompatibility number identifies the combined syntactic incompatibility information.
- the performance incompatibility number identifies the combined performance incompatibility information.
- the number of recommendations is the cumulative number of connections.
- the evaluation information storage unit 122 also stores a usage application table 146.
- One record of the usage application table 146 corresponds to the usage of one incompatible sub-information or performance incompatible information in one incompatible absorption project.
- Each record of the usage application table 146 includes a user name, application ID, number and number.
- the user name is the name of the applicant for simple usage or the name of the applicant for component usage.
- the application ID is an identifier that identifies an incompatible absorption project in which simple use or component use has been made.
- the number is an incompatible sub-number identifying used incompatible sub-information or a performance incompatible number identifying used performance incompatible information.
- the simple use of syntactically incompatible information means the use of all incompatible sub-information included in the syntactically incompatible information.
- the number is the number of incompatible points detected in the incompatible absorption project.
- FIG. 20 is a diagram showing an example of a point tally table.
- the evaluation information storage unit 122 stores a point tally table 147.
- FIG. The point management unit 126 may display the point tally table 147 on the display device 111 or transmit it to another information processing device.
- One record in the point total table 147 corresponds to one user.
- Each record in the point tally table 147 includes a user name and points.
- Username is the name of the user. However, a user ID other than the user's name may be used. Points are the total points given to the user.
- FIG. 21 is a flowchart illustrating an example of a procedure for managing incompatibility information. (S10) The information processing device 100 receives a message from the terminal device.
- the information processing apparatus 100 determines whether the received message is of the first type, that is, whether it is a new registration of incompatible information. If the incompatibility information is newly registered, the process proceeds to step S12. Otherwise, the process proceeds to step S15.
- the incompatibility information registration unit 123 selects an approver candidate and transmits an approval request message.
- the incompatibility information registration unit 123 receives an approval message from the approver.
- the incompatibility information registration unit 123 stores the new incompatibility information in the incompatibility information storage unit 121 . If the incompatible information is syntax incompatible information, the incompatible information registration unit 123 adds a record to the syntax incompatible master table 142 . Also, the incompatibility information registration unit 123 records the registrant and approver in the registered use status table 144 .
- the point management unit 126 refers to the value master table 143, calculates the points to be given to the registrant and the points to be given to the approver, and records them in the point total table 147. For example, the point management unit 126 gives 100 points to the registrant and 90 points to the approver. Then, incompatibility information management ends.
- the information processing apparatus 100 determines whether the received message is of the second type, that is, whether it is a request to inherit existing incompatible information. If it is an inheritance application, the process proceeds to step S16. Otherwise, the process proceeds to step S19.
- the incompatibility information registration unit 123 selects an approver candidate and sends an approval request message. As approver candidates, priority is given to the initial approver or maintenance approver in the registered use status table 144 . The incompatibility information registration unit 123 receives an approval message from the approver.
- the incompatibility information registration unit 123 updates the reference edge key included in the syntax incompatibility master table 142, and associates the syntax incompatibility information with the new edge.
- the point management unit 126 refers to the value master table 143 to calculate the points to be given to the inheritance applicant and the points to be given to the current approver, and record them in the point total table 147 . For example, the point management unit 126 gives 2 points to the successor applicant and 1 point to the approver. Then, incompatibility information management ends.
- the information processing apparatus 100 determines whether the received message is of the third type, that is, whether it is an application for use of incompatible information. If it is a usage application, the process proceeds to step S20. Otherwise, the process proceeds to step S23.
- the point management unit 126 records the usage application in the usage application table 146, and increases the cumulative number of uses of the used incompatible information by the number included in the usage application.
- the point management unit 126 refers to the value master table 143 and calculates a user-side coefficient and a creation-side coefficient that depend on the cumulative number of times of use. As the cumulative number of times of use increases, the usage side coefficient is calculated to be smaller, and the creation side coefficient is calculated to be larger.
- the point management unit 126 calculates points to be given to the user based on the value master table 143 and the user-side coefficient of step S21, and records them in the point total table 147. For example, the point management unit 126 gives the use applicant variable points of 0 points or more and 10 points or less. Further, the point management unit 126 calculates the points to be given to the registrant of the used incompatible information and the points to be given to the approver based on the value master table 143 and the creation side coefficient of step S21, and 147 records. For example, the point management unit 126 gives one or more variable points to each of the registrant and the approver. Then, incompatibility information management ends.
- FIG. 22 is a flowchart (continued) showing an example of a procedure for managing incompatibility information.
- the information processing apparatus 100 determines whether the received message is of the fourth type, that is, whether it is correction of existing incompatible information. In the case of correction, the process proceeds to step S24. Otherwise, the process proceeds to step S27.
- the incompatibility information registration unit 123 selects an approver candidate and transmits an approval request message.
- the incompatibility information registration unit 123 receives an approval message from the approver.
- the incompatibility information registration unit 123 updates the existing incompatibility information stored in the incompatibility information storage unit 121.
- the point management unit 126 refers to the value master table 143, calculates the points to be given to the corrector and the points to be given to the current approver, and records them in the point total table 147. For example, the point management unit 126 gives 100 points to the corrector and 90 points to the approver. Then, incompatibility information management ends.
- the information processing apparatus 100 determines whether the received message is of the fifth type, that is, whether it is a component usage of incompatible sub-information. If the part is to be used, the process proceeds to step S28. Otherwise, the process proceeds to step S31.
- the point management unit 126 records the use of the component in the use application table 146, and increases the cumulative number of uses of the used incompatible sub-information by the number included in the use application.
- the point management unit 126 refers to the value master table 143 and calculates a user-side coefficient and a creation-side coefficient that depend on the cumulative number of times of use. As the cumulative number of times of use increases, the usage side coefficient is calculated to be smaller, and the creation side coefficient is calculated to be larger.
- the point management unit 126 calculates points to be given to the part use applicant based on the value master table 143 and the user-side coefficient of step S29, and records them in the point total table 147. For example, the point management unit 126 gives 0 points or more and 10 points or less variable points to the parts use applicant. Further, the point management unit 126 calculates the points to be given to the registrant of the used incompatible sub-information and the points to be given to the approver based on the value master table 143 and the coefficient on the creation side of step S29, and totals the points. Record in table 147 . For example, the point management unit 126 gives one or more variable points to the registrant and approver. Then, incompatibility information management ends.
- the information processing apparatus 100 determines that the received message is of the sixth type, ie, an assessment of incompatible absorption.
- the incompatibility detection unit 124 performs an assessment on the source code received from the terminal device and transmits the assessment result to the terminal device.
- the information processing apparatus 100 determines whether a recommendation for combining different pieces of incompatible information has been made in the assessment. If a combination is recommended, the process proceeds to step S32. Otherwise, incompatible information management ends.
- the point management unit 126 increments by one the number of recommendations corresponding to the combined set of incompatible information in the combined status table 145 .
- the point management unit 126 refers to the value master table 143 and calculates a creator-side coefficient that depends on the number of recommendations in step S32. The greater the number of recommendations, the greater the coefficient calculated on the creation side.
- the point management unit 126 calculates the points to be given to the registrant of each piece of combined incompatible information and the points to be given to the approver based on the value master table 143 and the coefficients on the creation side of step S33, It is recorded in the point tally table 147 .
- the point management unit 126 gives one or more variable points to the registrant and approver.
- the information processing system of the second embodiment accumulates incompatibility information indicating the know-how of incompatibility absorption of database products in the shared database.
- the information processing system uses the accumulated incompatibility information to automatically detect the incompatibility part from the source code, and presents the user with a method of resolving the incompatibility. Also, the information processing system rewrites the source code so as to eliminate the incompatibility. Thus, non-compatible absorption is made efficient.
- the information processing system monitors the registration and use of incompatible information, and gives points as an incentive to users who contribute to increasing the value of the shared database. This encourages the registration and use of incompatible information, promoting active use of the shared database. As a result, knowledge of incompatible absorption is shared among users, and incompatible absorption is made efficient.
- the information processing system gives points to registrants and approvers when newly registering incompatible information. This increases the amount of incompatible information stored in the shared database, and improves the quality of the registered incompatible information.
- the information processing system gives points to the inheritance applicant and approver when inheriting the existing incompatible information. This increases the number of database products to which the same incompatible information can be applied. At this time, the registrant and approver of the incompatible information can preferentially become the successor applicant and approver of the incompatible information. Therefore, confirmation of inheritance is made efficient, and fairness among users is improved.
- the information processing system gives points to the applicant, registrant, and approver when using incompatible information.
- This increases the use of the incompatible information stored in the shared database and also provides incentives for registration and approval of the incompatible information.
- the use applicant acquires a larger point when using incompatible information with less use record. This increases the availability of a wide range of incompatible information.
- the registrant and the approver obtain more points as their use record of the registered incompatible information increases. This enhances the incentives for registering and acknowledging incompatible information and improves the quality of incompatible information.
- the information processing system gives points to the corrector and approver when correcting incompatible information. This prevents errors in the incompatible information from being left unattended, and improves the quality of the incompatible information stored in the shared database. Also, the information processing system gives points to the use applicant, the registrant, and the approver when parts of the incompatible sub-information, which is a part of the incompatible information, are used. This increases the reuse of incompatible sub-information. Further, when the information processing system presents a combination of related syntax incompatibility information and performance incompatibility information to the user, points are given to the registrant and approver of each incompatibility information. As a result, latent incompatibilities are discovered at an early stage, problems are prevented, and rework of incompatibility absorption is suppressed.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
[第1の実施の形態]
第1の実施の形態を説明する。
第1の実施の形態の情報処理装置10は、あるソフトウェアに依存するソースコードを別のソフトウェアに適合するように書き換えるという非互換吸収を支援する。情報処理装置10は、非互換吸収の方法を示す非互換情報を管理する。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が、コンピュータ、非互換情報管理装置またはソフトウェア開発支援装置と呼ばれてもよい。
非互換情報13は、第1のソフトウェアに依存するプログラムのソースコードを、第2のソフトウェアに適合するように書き換える書換方法を示す。非互換情報13は、非互換吸収の知識を一定の形式で表現した知識情報である。第1のソフトウェアは変更前のソフトウェアに相当し、第2のソフトウェアは変更後のソフトウェアに相当する。変更前後のソフトウェアは、ソフトウェアベンダから提供されるソフトウェア製品であってもよく、DBMSやWebサーバなどのミドルウェアであってもよい。また、変更前後のソフトウェアは、異なるソフトウェアベンダから提供される同種のソフトウェアでもよいし、同一のソフトウェアベンダから提供される異なるバージョンのソフトウェアでもよい。
次に、第2の実施の形態を説明する。第2の実施の形態の情報処理システムは、データベース製品を使用するプログラムのソースコードを解析し、使用するデータベース製品を変更する際の修正作業を支援する。データベース製品の変更は、異なるソフトウェアベンダから提供されるデータベース製品の間の変更と、同一のソフトウェアベンダから提供される異なるバージョンの間の変更とを含む。データベース製品の間には非互換性が存在することがある。非互換性による不具合を解消するようにソースコードを修正することは、非互換吸収と呼ばれることがある。
第2の実施の形態の情報処理システムは、ネットワーク30に接続された端末装置31,32,33などの複数の端末装置と情報処理装置100とを含む。ネットワーク30は、LAN(Local Area Network)を含んでもよく、インターネットを含んでもよい。端末装置31,32,33は、ユーザが操作するクライアントコンピュータである。情報処理装置100は、端末装置31,32,33からアクセスされるサーバコンピュータである。情報処理装置100は、第1の実施の形態の情報処理装置10に対応する。
情報処理装置100は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。端末装置31,32,33が、情報処理装置100と同様のハードウェアを有してもよい。
図4は、データベース製品の非互換吸収の流れの例を示す図である。
情報処理システムは、変更前のデータベース製品に依存するソースコード131を取得する。ソースコード131は、SQL文またはSQLプロシジャコードを含む。SQL文は、SQLを用いて記述されたデータベースクエリである。SQLの基本仕様は標準化されているものの、データベース製品によっては基本仕様を拡張した独自仕様をもつことがある。SQLプロシジャコードは、SQLと整合するように規定された手続き型言語のプログラムであり、ストアドプロシジャとして動作する。
情報処理装置100は、非互換情報記憶部121および評価情報記憶部122を有する。これらの記憶部は、例えば、RAM102またはHDD103を用いて実装される。また、情報処理装置100は、非互換情報登録部123、非互換検出部124、利用申請受信部125およびポイント管理部126を有する。これらの処理部は、例えば、CPU101およびプログラムを用いて実装される。
図6は、エッジテーブルと構文非互換マスタテーブルの例を示す図である。
非互換情報記憶部121は、エッジテーブル141を記憶する。エッジテーブル141は、変更前のデータベース製品と変更後のデータベース製品の組を表すエッジを管理する。変更前のデータベース製品は非互換吸収元と呼ばれることがあり、変更後のデータベース製品は非互換吸収先と呼ばれることがある。データベース製品は、製品名とバージョン番号とによって識別される。エッジテーブル141の1つのレコードは、1つのエッジに対応する。各レコードは、エッジキー、吸収元製品および吸収先製品を含む。
ここで、SQL文の構文について説明する。文は末尾に終端記号を含む。文は終端記号の前に節を含むことがある。節は先頭に命令語を含み、命令語と終端記号の間に句、式または語を含む。句は先頭にオブジェクト種別、前置詞、副詞または括弧を含む。句は続いて句、式または語を含み、句、式または語が2回以上連続することがある。句は続いて節を含むことがある。式は関数名または語を含み、続いて演算子を含む。
属性情報153は、構文ツリーの1つのノードに対応付けられる。属性情報153は、位置情報、分類、分類属性、種別、値、値属性および行番号を含む。ただし、ノードの種別によって、一部の項目の項目値が定義されないことがある。
構文テーブル154は、図7の構文ツリー152と同等の構文テーブルである。構文テーブル154の左上のセルの位置座標が(1,1)である。下に進むほど縦位置を示す行番号が大きくなり、右に進むほど横位置を示す列番号が大きくなる。各セルの位置は、(行番号,列番号)という二次元座標によって指定される。
命令テーブル155は、構文非互換情報で使用され得る命令の定義を示す。命令テーブル155の1つのレコードが1つの命令を示す。命令テーブル155の1つのレコードは、命令、縦位置、横位置、探索属性およびキーワードを含む。
構文非互換情報156は、非互換情報記憶部121に記憶される。構文非互換情報156は、図7に示した構文ツリー152に適用される構文非互換情報の例である。ここでは、ソースコード151に含まれるC1='1'という構文が変更後のデータベース製品でサポートされておらず、C1='1'::NUMERICに書き換えることで構文非互換性が解消されるものとする。構文非互換情報156の1つのレコードは、1つの特定命令または1つの書換命令に対応する。構文非互換情報156の各レコードは、命令番号、命令属性、命令、縦位置、横位置、探索属性、キーワードおよびアクションを含む。
非互換検出部124は、構文ツリー152に対して構文非互換情報156を実行することで、構文ツリー158を生成する。構文ツリー158は、SELECT,*,FROM,S1.T1,WHERE,C1,=,'1',::,NUMERICというキーワードに対応する10個の語ノードを含む。また、構文ツリー158は、1個の文ノード、1個の節ノード、2個の述語句ノード、2個の式ノードおよび1個の終端記号ノードを含む。構文ツリー158は、ソースコード157に相当する。ソースコード157は、SELECT * FROM S1.T1 WHERE C1='1'::NUMERIC;というSQL文を含む。よって、ソースコード151がソースコード157に変換される。
構文ツリー162は、ソースコード161の構文を示す。ソースコード161は、SELECT CAST(C1 AS NUMBER) FROM T1 AS TBL1 WHERE EXISTS(SELECT 1 FROM T2 AS TBL2 WHERE TBL1.C2=CAST(TBL2.C2 AS NUMBER));というSQL文を含む。このSQL文は、WHERE EXISTS以下に副問い合わせを含んでおり、複雑な構文をもつ。
構文非互換情報163は、非互換情報記憶部121に記憶される。構文非互換情報163は、図13の構文ツリー162に適用される構文非互換情報の例である。ここでは、データ型NUMBERが変更後のデータベース製品によってサポートされておらず、データ型をNUMBERからNUMERICに変換することで構文非互換性が解消されるものとする。
図15は、構文非互換情報の他の例を示す図(続き)である。
性能非互換情報164は、非互換情報記憶部121に記憶される。ここでは、あるSQL文を実行するための負荷が、変更前のデータベース製品では低いのに対し、変更後のデータベース製品では高い場合を考える。この性能非互換性は、SELECT * FROM S.T WHERE C='値'::NUMERIC;という構文をもつSQL文で発生する。そして、::NUMERICを::NUMBERに変更にすることで、この性能非互換性を解消することが可能であるものとする。
SQL構文情報165は、非互換情報記憶部121に記憶される。SQL構文情報165は、性能非互換性が発生するSQL文の特徴を表す。SQL構文情報165は、性能非互換情報164と関連付けられる。SQL構文情報165は、SQL構文番号、性能非互換番号、BOW(Bag of Words)ベクトルおよびキーワードリストを含む。
図18は、価値マスタテーブルの例を示す図である。
評価情報記憶部122は、価値マスタテーブル143を記憶する。価値マスタテーブル143は、第1の実施の形態の価値マスタテーブル15に対応する。価値マスタテーブル143は、ユーザに付与されるポイントの算出方法を規定する。価値マスタテーブル143は、基準ポイントを含む。例えば、基準ポイントは、100ポイントである。
評価情報記憶部122は、登録利用状況テーブル144を記憶する。登録利用状況テーブル144の1つのレコードは、1つの非互換サブ情報または1つの性能非互換情報に対応する。登録利用状況テーブル144の各レコードは、番号、利用回数、初期登録者、初期承認者、保守権利者および保守承認権利者を含む。
評価情報記憶部122は、ポイント集計テーブル147を記憶する。ポイント管理部126は、ポイント集計テーブル147を表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。ポイント集計テーブル147の1つのレコードは、1人のユーザに対応する。ポイント集計テーブル147の各レコードは、ユーザ名およびポイントを含む。ユーザ名は、ユーザの名前である。ただし、ユーザの名前以外のユーザIDが用いられてもよい。ポイントは、ユーザに付与された合計のポイントである。
図21は、非互換情報管理の手順例を示すフローチャートである。
(S10)情報処理装置100は、端末装置からメッセージを受信する。
(S13)非互換情報登録部123は、新規の非互換情報を非互換情報記憶部121に保存する。非互換情報が構文非互換情報である場合、非互換情報登録部123は、構文非互換マスタテーブル142にレコードを追加する。また、非互換情報登録部123は、登録利用状況テーブル144に登録者および承認者を記録する。
(S18)ポイント管理部126は、価値マスタテーブル143を参照して、継承申請者に付与するポイントおよび今回の承認者に付与するポイントを算出し、ポイント集計テーブル147に記録する。例えば、ポイント管理部126は、継承申請者に2ポイントを付与し、承認者に1ポイントを付与する。そして、非互換情報管理が終了する。
(S21)ポイント管理部126は、価値マスタテーブル143を参照して、累積利用回数に依存する利用側係数と作成側係数とを算出する。累積利用回数が多いほど、利用側係数が小さく算出され、作成側係数が大きく算出される。
(S23)情報処理装置100は、受信されたメッセージが第4種別であるか、すなわち、既存の非互換情報の修正であるか判断する。修正である場合、ステップS24に処理が進む。それ以外の場合、ステップS27に処理が進む。
(S25)非互換情報登録部123は、非互換情報記憶部121に記憶されている既存の非互換情報を更新する。
(S29)ポイント管理部126は、価値マスタテーブル143を参照して、累積利用回数に依存する利用側係数と作成側係数とを算出する。累積利用回数が多いほど、利用側係数が小さく算出され、作成側係数が大きく算出される。
(S33)ポイント管理部126は、価値マスタテーブル143を参照して、ステップS32のレコメンド回数に依存する作成側係数を算出する。レコメンド回数が多いほど、作成側係数が大きく算出される。
11 記憶部
12 処理部
13 非互換情報
14 登録者情報
15 価値マスタテーブル
16,17 利用情報
18a,18b,19 評価値
Claims (10)
- 第1のソフトウェアに依存するソースコードを第2のソフトウェアに適合させる書換方法を示す非互換情報と前記非互換情報の登録者を示す登録者情報とを含むデータベースに対する利用情報であって、前記非互換情報の利用者と前記非互換情報の利用結果とを示す利用情報を取得し、
前記利用情報が示す前記利用結果の種別を特定し、
複数の利用結果の種別と複数の評価値との間の対応関係を示す評価基準情報に基づいて、前記特定した種別に応じて、前記利用情報が示す前記利用者および前記登録者情報が示す前記登録者の少なくとも一方に付与する評価値を算出する、
処理をコンピュータに実行させる情報処理プログラム。 - 前記評価値の算出は、前記特定した種別が、前記第1のソフトウェアと前記第2のソフトウェアの組に対する前記非互換情報の利用成功である場合、前記利用者に付与する第1の評価値と前記登録者に付与する第2の評価値とを算出する処理を含む、
請求項1記載の情報処理プログラム。 - 前記データベースは、前記非互換情報の累積利用回数を示す利用回数情報を含み、
前記第1の評価値および前記第2の評価値は、前記利用回数情報に応じて算出される、
請求項2記載の情報処理プログラム。 - 前記第1の評価値は、前記累積利用回数が少ないほど大きく算出され、前記第2の評価値は、前記累積利用回数が多いほど大きく算出される、
請求項3記載の情報処理プログラム。 - 前記評価値の算出は、前記特定した種別が、前記第1のソフトウェアと前記第2のソフトウェアの組とは異なる他のソフトウェアの組への前記非互換情報の応用である場合、前記利用者に付与する第3の評価値を算出する処理を含む、
請求項1記載の情報処理プログラム。 - 前記非互換情報は、前記ソースコードの中の不連続な2以上の文字列を書き換える書換方法を示す2以上の非互換サブ情報を含み、
前記評価値の算出は、前記特定した種別が、前記非互換情報に含まれる一部の非互換サブ情報の部分利用である場合、前記利用者に付与する第4の評価値と前記登録者に付与する第5の評価値とを算出する処理を含む、
請求項1記載の情報処理プログラム。 - 前記データベースは、前記第2のソフトウェアの不具合原因となる構文を示す他の非互換情報と前記他の非互換情報を登録した他の登録者を示す他の登録者情報とを含み、
前記評価値の算出は、前記特定した種別が、前記非互換情報が示す前記書換方法と前記他の非互換情報が示す前記構文との抵触である場合、前記登録者に付与する第6の評価値と前記他の登録者に付与する第7の評価値とを算出する処理を含む、
請求項1記載の情報処理プログラム。 - 前記評価値の算出は、前記特定した種別が前記非互換情報の修正である場合、前記利用者に付与する第8の評価値を算出する処理を含む、
請求項1記載の情報処理プログラム。 - 第1のソフトウェアに依存するソースコードを第2のソフトウェアに適合させる書換方法を示す非互換情報と前記非互換情報の登録者を示す登録者情報とを含むデータベースに対する利用情報であって、前記非互換情報の利用者と前記非互換情報の利用結果とを示す利用情報を取得し、
前記利用情報が示す前記利用結果の種別を特定し、
複数の利用結果の種別と複数の評価値との間の対応関係を示す評価基準情報に基づいて、前記特定した種別に応じて、前記利用情報が示す前記利用者および前記登録者情報が示す前記登録者の少なくとも一方に付与する評価値を算出する、
処理をコンピュータが実行する情報処理方法。 - 第1のソフトウェアに依存するソースコードを第2のソフトウェアに適合させる書換方法を示す非互換情報と前記非互換情報の登録者を示す登録者情報とを記憶する記憶部と、
前記非互換情報の利用者と前記非互換情報の利用結果とを示す利用情報を取得し、前記利用情報が示す前記利用結果の種別を特定し、複数の利用結果の種別と複数の評価値との間の対応関係を示す評価基準情報に基づいて、前記特定した種別に応じて、前記利用情報が示す前記利用者および前記登録者情報が示す前記登録者の少なくとも一方に付与する評価値を算出する処理部と、
を有する情報処理装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023528843A JPWO2022264316A1 (ja) | 2021-06-16 | 2021-06-16 | |
EP21945993.0A EP4357911A1 (en) | 2021-06-16 | 2021-06-16 | Information processing program, information processing method, and information processing device |
PCT/JP2021/022881 WO2022264316A1 (ja) | 2021-06-16 | 2021-06-16 | 情報処理プログラム、情報処理方法および情報処理装置 |
US18/515,778 US20240086189A1 (en) | 2021-06-16 | 2023-11-21 | Non-transitory computer-readable recording medium storing information processing program, information processing method, and information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/022881 WO2022264316A1 (ja) | 2021-06-16 | 2021-06-16 | 情報処理プログラム、情報処理方法および情報処理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/515,778 Continuation US20240086189A1 (en) | 2021-06-16 | 2023-11-21 | Non-transitory computer-readable recording medium storing information processing program, information processing method, and information processing device |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022264316A1 true WO2022264316A1 (ja) | 2022-12-22 |
Family
ID=84526460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/022881 WO2022264316A1 (ja) | 2021-06-16 | 2021-06-16 | 情報処理プログラム、情報処理方法および情報処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240086189A1 (ja) |
EP (1) | EP4357911A1 (ja) |
JP (1) | JPWO2022264316A1 (ja) |
WO (1) | WO2022264316A1 (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03242727A (ja) * | 1990-02-21 | 1991-10-29 | Fujitsu Ltd | 計算機システムの新旧交換時における移行システム |
WO2003069466A1 (fr) | 2002-02-18 | 2003-08-21 | Japan Science And Technology Agency | Système d'évaluation de l'importance d'un composant logiciel |
JP2006099418A (ja) | 2004-09-29 | 2006-04-13 | Chugoku Electric Power Co Inc:The | 情報処理装置、情報処理装置の制御方法、プログラム |
JP2013225181A (ja) * | 2012-04-19 | 2013-10-31 | Hitachi Solutions Ltd | 情報レコメンドシステム、方法、およびプログラム |
WO2015100496A1 (en) | 2014-01-03 | 2015-07-09 | Investel Capital Corporation | User content sharing system and method with automated external content integration |
JP2016053809A (ja) * | 2014-09-03 | 2016-04-14 | 大日本印刷株式会社 | サーバ装置、プログラム及び情報提供方法 |
-
2021
- 2021-06-16 EP EP21945993.0A patent/EP4357911A1/en active Pending
- 2021-06-16 WO PCT/JP2021/022881 patent/WO2022264316A1/ja active Application Filing
- 2021-06-16 JP JP2023528843A patent/JPWO2022264316A1/ja active Pending
-
2023
- 2023-11-21 US US18/515,778 patent/US20240086189A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03242727A (ja) * | 1990-02-21 | 1991-10-29 | Fujitsu Ltd | 計算機システムの新旧交換時における移行システム |
WO2003069466A1 (fr) | 2002-02-18 | 2003-08-21 | Japan Science And Technology Agency | Système d'évaluation de l'importance d'un composant logiciel |
JP2006099418A (ja) | 2004-09-29 | 2006-04-13 | Chugoku Electric Power Co Inc:The | 情報処理装置、情報処理装置の制御方法、プログラム |
JP2013225181A (ja) * | 2012-04-19 | 2013-10-31 | Hitachi Solutions Ltd | 情報レコメンドシステム、方法、およびプログラム |
WO2015100496A1 (en) | 2014-01-03 | 2015-07-09 | Investel Capital Corporation | User content sharing system and method with automated external content integration |
JP2016053809A (ja) * | 2014-09-03 | 2016-04-14 | 大日本印刷株式会社 | サーバ装置、プログラム及び情報提供方法 |
Non-Patent Citations (1)
Title |
---|
RAKUTEN STAFF BLOG, 15 March 2021 (2021-03-15), Retrieved from the Internet <URL:https://plaza.raluten.co.jp/recipeinfo/diary/20210310000> [retrieved on 20210816] * |
Also Published As
Publication number | Publication date |
---|---|
JPWO2022264316A1 (ja) | 2022-12-22 |
US20240086189A1 (en) | 2024-03-14 |
EP4357911A1 (en) | 2024-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7685150B2 (en) | Optimization of queries over XML views that are based on union all operators | |
US8479149B2 (en) | Concept-oriented software engineering system and method for identifying, extracting, organizing, inferring and querying software system facts | |
US8209361B2 (en) | Techniques for efficient and scalable processing of complex sets of XML schemas | |
CN109840256A (zh) | 一种基于业务实体的查询实现方法 | |
US7519574B2 (en) | Associating information related to components in structured documents stored in their native format in a database | |
US11204746B2 (en) | Encoding dependencies in call graphs | |
KR20120037393A (ko) | 소프트웨어 확장 분석 | |
Vo et al. | Discovering Conditional Functional Dependencies in XML Data. | |
US8086561B2 (en) | Document searching system and document searching method | |
Luong et al. | A rule‐based approach for semantic annotation evolution | |
US9697239B1 (en) | Token-based database system and method of interfacing with the token-based database system | |
WO2022264316A1 (ja) | 情報処理プログラム、情報処理方法および情報処理装置 | |
Kuć et al. | ElasticSearch server | |
US20230418803A1 (en) | Techniques for integrating data for multple instances of a data artifact | |
US11068468B2 (en) | Extensible validation framework | |
WO2022254504A1 (ja) | 情報処理プログラム、情報処理方法および情報処理装置 | |
US10719424B1 (en) | Compositional string analysis | |
US10338903B2 (en) | Simulation-based code duplication | |
US9965453B2 (en) | Document transformation | |
JP2010186412A (ja) | 文書管理方法及び管理装置 | |
WO2022195726A1 (ja) | 情報処理プログラム、情報処理方法および情報処理装置 | |
US20240012803A1 (en) | Mechanisms for deleting triples of a database store | |
US20240012802A1 (en) | Mechanisms for serializing triples of a database store | |
US20230334268A1 (en) | Logical pointers supporting reuse of text translations | |
Hirsch et al. | Spotting and removing wsdl anti-pattern root causes in code-first web services: a thorough evaluation of impact on service discoverability |
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: 21945993 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2023528843 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2021945993 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2021945993 Country of ref document: EP Effective date: 20240116 |