Support device, support method, and support program

The support device addresses the challenge of verifying the migration of functions from monolithic IT systems to microservices architectures by comparing input/output values and identifying mismatches in microservices, ensuring effective system migration.

JP2025073254AActive Publication Date: 2025-05-13HITACHI LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023183863
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-10-26
Publication Date
2025-05-13
Estimated Expiration
2043-10-26

AI Technical Summary

Technical Problem

Existing technologies struggle to verify the correct migration of functions from monolithic IT systems to microservices architectures, as they cannot effectively compare detailed output results between the old and new systems, and cannot identify which microservice is causing mismatches.

Method used

A support device that includes a processor and memory, capable of acquiring and comparing input/output values between the old and new systems, and outputting information on the results of these comparisons to assist in verifying the operation of the new system.

Benefits of technology

Enables effective verification of the operation of the new system by identifying mismatches and pinpointing the specific microservices causing these mismatches, thus supporting the successful migration to a microservices architecture.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025073254000001_ABST
    Figure 2025073254000001_ABST
Patent Text Reader

Abstract

To support verification of a new system's operation when migrating an existing system to the new system in which multiple components work together.SOLUTION: Provided is a support device for supporting verification of a second system's operation in which multiple components generated by dividing a first system communicate with each other, including: an acquisition unit for acquiring a second input / output value, which is an input value or output value in communication between the components in the second system when a same input value is input to the first system and the second system, and a first input / output value in the first system that corresponds to the second input / output value; a comparison unit for comparing the first input / output value with the second input / output value; and an output unit for outputting information based on the comparison result.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to an assistance device, an assistance method, and an assistance program. [Background technology]

[0002] Attention is being paid to dividing the programs and data of, for example, a monolithic current IT (Information Technology) system (hereinafter referred to as the "current system") developed using existing development platform technology into multiple microservices and migrating it to a microservices architecture to improve flexibility or scalability. When migrating, it is very important to check whether the functions of the current system have been correctly migrated to the microservices architecture.

[0003] Patent Document 1 describes a test transition support system that acquires request messages and response messages from a current system by packet capture or the like, stores them in storage or the like, reads the stored message information, sends the request message to a new system, receives the response message, and compares the current and new response messages, response times, relationships between multiple messages, or order, etc.

[0004] Furthermore, Patent Document 2 describes an object-oriented program debugging method in which a class for comparing the behavior of two object-oriented programs is generated, and the programs are executed in parallel for comparison, thereby verifying a newly developed program by checking for degradation due to program changes and by comparing the behavior with a prototype or an existing older version of the software. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] JP 2014-26480 A [Patent Document 2] JP 2000-284991 A Summary of the Invention [Problem to be solved by the invention]

[0006] However, when migrating from a current system to a microservice architecture, the architecture of the system is changed, but the technology described in Patent Document 1 does not assume such a change in architecture. Therefore, the current system cannot capture data corresponding to the request message and response message of the microservice, so detailed output results cannot be compared between the current system and the microservice architecture. In addition, the technology described in Patent Document 1 assumes one test target system, but since multiple microservices exist in the microservice architecture, when a discrepancy occurs in the execution results between the current system and the microservice, it is not possible to identify which microservice is causing the discrepancy. Similarly, the technology described in Patent Document 2 cannot identify which microservice is causing the discrepancy when the data of the current system and the migrated system does not match for a request message.

[0007] The present invention has been made in consideration of the above circumstances, and its purpose is to provide an assistance device, an assistance method, and an assistance program that can assist in verifying the operation of a new system when migrating an existing system to a new system in which multiple components work together. [Means for solving the problem]

[0008] One of the present inventions for solving the above problems is a support device for supporting verification of the operation of a second system in which a plurality of components generated by dividing a first system communicate with each other, the support device having a processor and a memory, and including an acquisition unit that acquires a second input / output value, which is an input value or output value in communication between components in the second system when the same input value is input to the second system and the first system, and a first input / output value in the first system corresponding to the second input / output value, a comparison unit that compares the first input / output value with the second input / output value, and an output unit that outputs information based on the result of the comparison. Effect of the Invention

[0009] According to the present invention, when migrating an existing system to a new system in which a plurality of components work together, it is possible to assist in verifying the operation of the new system. Configurations and effects other than those described above will become apparent from the following description of the embodiments. [Brief description of the drawings]

[0010] [Figure 1] 11 is a diagram showing an example of a new application and an old application whose operation is verified by the current / new confirmation support device; [Diagram 2] FIG. 2 is a diagram illustrating an example of the configuration of a current / new confirmation support device. [Diagram 3] 2 is a block diagram showing an example of a functional configuration of a current / new confirmation support device. FIG. [Figure 4] FIG. 13 is a diagram illustrating an example of processing performed by a current / new confirmation support device. [Diagram 5] FIG. 13 is a diagram showing an example of an execution result inconsistency information display screen. [Figure 6] FIG. 13 is a diagram illustrating another example of processing performed by the current / new confirmation support device. [Figure 7] FIG. 13 is a diagram showing an example of a breakpoint information display screen. [Figure 8] FIG. 11 is a process flow diagram illustrating pre-processing for comparing input / output values ​​of an old application with input / output values ​​of a new application. [Figure 9] 13 is a diagram illustrating the process of a new application process mediation function generation unit. FIG. [Figure 10] FIG. 13 is a diagram illustrating an example of application execution intermediation processing unit definition information. [Figure 11] FIG. 11 is a diagram illustrating an example of breakpoint candidate information. [Figure 12] 13 is a diagram illustrating the process of a previous application process mediation function generation unit. FIG. [Figure 13] FIG. 13 is a diagram illustrating an example of updated application execution intermediation processing unit definition information. [Figure 14] FIG. 13 is a diagram showing an example of a breakpoint setting screen. [Figure 15]FIG. 13 is a diagram illustrating an example of breakpoint information. [Figure 16] 11 is a process flow diagram illustrating an application execution intermediation process executed by an application execution intermediation processing unit. FIG. [Figure 17] 13 is a diagram illustrating the process of an application execution intermediation processing unit. FIG. [Figure 18] FIG. 13 is a process flow diagram illustrating an input / output value comparison process executed by a new and old application input / output value comparison unit. [Figure 19] 13A and 13B are diagrams illustrating the processing of a new and old application input / output value comparison unit. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. The following description and drawings are examples for explaining the present invention, and appropriate omissions and simplifications are made for clarity of explanation. The present invention can be implemented in various other forms. Unless otherwise specified, each component may be singular or plural. In order to facilitate understanding of the invention, the position, size, shape, range, etc. of each component shown in the drawings may not represent the actual position, size, shape, range, etc. Therefore, the present invention is not necessarily limited to the position, size, shape, range, etc. disclosed in the drawings. In the following explanation, various information may be explained using expressions such as "table," "list," and "queue," but the various information may be expressed in other data structures. To indicate independence of data structure, "XX table," "XX list," and the like may be referred to as "XX information." When explaining identification information, expressions such as "identification information," "identifier," "name," "ID," and "number" are used, but these are interchangeable. When there are multiple components having the same or similar functions, they may be described by using the same reference numerals with different subscripts. However, when there is no need to distinguish between these multiple components, the subscripts may be omitted. In addition, in the following description, processing performed by executing a program may be described, but the program is executed by a processor (e.g., CPU, GPU) to perform a defined process using storage resources (e.g., memory) and / or interface devices (e.g., communication ports) as appropriate, so the subject of the processing may be the processor. Similarly, the subject of the processing performed by executing a program may be a controller, device, system, computer, or node having a processor. The subject of the processing performed by executing a program may be a calculation unit, and may include a dedicated circuit (e.g., FPGA or ASIC) that performs a specific process. A program may be installed in a device such as a computer from a program source. The program source may be, for example, a program distribution server or a computer-readable storage medium. When the program source is a program distribution server, the program distribution server may include a processor and a storage resource for storing a program to be distributed, and the processor of the program distribution server may distribute the program to be distributed to other computers. In the following description, two or more programs may be realized as one program, and one program may be realized as two or more programs.

[0012] <New app and old app> 1 is a diagram showing an example of a new application 20 and an old application 21 whose operation is verified by a current / new confirmation support device 10 described later. A specific description will be given below using the new application 20 and the old application 21 shown in this diagram as an example.

[0013] The old application 21 (first system) is, for example, a current monolithic IT (Information Technology) system developed using existing development platform technology. A monolithic system is, for example, a system (application) that is composed of all identical modules. In the illustrated example, the old application 21 executes processes AA, BB, and CC. Process AA calls process BB, and process BB calls process CC. Note that in this embodiment, an example will be described in which the old application 21 is a monolithic system, but the old application 21 is not limited to this, and may be, for example, a system composed of multiple components.

[0014] New application 20 (second system) is a system configured with microservice architecture (hereinafter referred to as "MSA (MicroService Architecture)"), in which the functions (programs and data) of old application 21 are divided into multiple microservices. Microservice architecture refers to a system architecture that realizes the functions of a system by combining fine-grained services (hereinafter referred to as "microservices"). Since each microservice in MSA is small and loosely coupled, it is possible to make changes and deploy on a microservice-by-microservice basis, and it is possible to realize rapid and frequent modifications and releases in response to changes in market needs.

[0015] That is, the new application 20 is a system in which multiple microservices generated by dividing the old application 21 communicate with each other. In the example shown in the figure, the new application 20 realizes various functions of the old application 21 by intercommunicating and coordinating a microservice MS-A that executes function AA of the old application 21, a microservice MS-B that executes function BB of the old application 21, and a microservice MS-C that executes function CC of the old application 21. Hereinafter, the position where the old application 21 is divided into multiple microservices MS is referred to as an "MS division boundary."

[0016] Hereinafter, the microservices included in the new application 20 will be collectively referred to as "microservices MS." For example, each microservice MS communicates with each other by sending and receiving a request message or a response message. Note that the new application 20 does not necessarily have to have an MSA configuration as long as the functions (components) constituting the system cooperate with each other. For example, multiple systems may cooperate with each other. Here, cooperation means that functions communicate with each other in order to process one request message.

[0017] The new application 20 may realize one microservice MS on one physical computer, or may realize multiple microservices MS on one physical computer. For example, each microservice MS may be realized by multiple virtual machines (VMs) or containers on one physical computer.

[0018] <Current / New Confirmation Support Device> 2 is a diagram showing a configuration example of the current / new confirmation support device 10. The current / new confirmation support device 10 (support device) is an information processing device that supports verification of the operation of the new application 20. The current / new confirmation support device 10 includes, as an example, a processing device 11 such as a CPU (Central Processing Unit), a memory 12 such as a RAM (Random Access Memory) or a ROM (Read Only Memory), a storage device 13 such as a HDD (Hard Disk Drive) or an SSD (Solid State Drive), an input device 14 such as a keyboard, a mouse, or a touch panel, an output device 15 such as a display or a printer, and a communication device 16 configured with a NIC (Network Interface Card), a wireless communication module, a USB (Universal Serial Interface) module, a serial communication module, or the like.

[0019] In the current / new confirmation support device 10, data such as programs used to execute predetermined processes is, for example, stored in the storage device 13, and the processing device 11 reads the data into the RAM of the memory 12 and executes it.

[0020] 3 is a block diagram showing an example of a functional configuration of the current / new confirmation support device 10. The current / new confirmation support device 10 stores in the storage device 13 programs for realizing each of the functions of the new application process intermediation function generation unit 101, the old application process intermediation function generation unit 102, the interruption point setting unit 103, the application execution intermediation processing unit 104, the new and old application input / output value comparison unit 105, and the screen display unit 106. The current / new confirmation support device 10 realizes each of the functions of the new application process intermediation function generation unit 101, the old application process intermediation function generation unit 102, the interruption point setting unit 103, the application execution intermediation processing unit 104, the new and old application input / output value comparison unit 105, and the screen display unit 106 by the processing device 11 reading out the programs stored in the storage device 13 into the memory 12 and executing them. The programs realizing each function of the new application processing intermediation function generation unit 101, the old application processing intermediation function generation unit 102, the interruption point setting unit 103, the application execution intermediation processing unit 104, the new and old application input / output value comparison unit 105, and the screen display unit 106 can be recorded on a portable or fixed recording medium and distributed, for example.

[0021] New application process intermediation function generation unit 101 receives new application source code group 200, which is a group of source codes for new application 20, rewrites new application source code group 200, and outputs it to application execution intermediation processing unit 104. New application process intermediation function generation unit 101 generates application execution intermediation processing unit definition information 300 (described later) and break point candidate information 400 (described later) based on new application source code group 200, and outputs them to old application process intermediation function generation unit 102. New application process intermediation function generation unit 101, for example, reads out new application source code group 200 from a predetermined database or the like.

[0022] Old application process intermediation function generation unit 102 (generation unit) receives old application source code group 210, which is a source code group of old application 21, application execution intermediation processing unit definition information 300, and break point candidate information 400, rewrites old application source code group 210, and updates application execution intermediation processing unit definition information 300 and break point candidate information 400 based on old application source code group 210. Old application process intermediation function generation unit 102, for example, reads out old application source code group 210 from a predetermined database or the like.

[0023] For example, in the old application source code group 210, the old application process intermediation function generation unit 102 adds a process of outputting an execution log including input values ​​or output values ​​(old application input / output values ​​610) between each process in the old application 21 to a process of the old application 21 corresponding to a process of communication (sending a message) between one microservice MS and another microservice MS.

[0024] The old application processing intermediation function generation unit 102 outputs the rewritten old application source code group 210 and the updated application execution intermediation processing unit definition information 300 to the application execution intermediation processing unit 104 , and outputs the break point candidate information 400 to the break point setting unit 103 .

[0025] The breakpoint setting unit 103 (setting unit) displays a breakpoint setting screen, which will be described later, on the display of the output device 15 based on the breakpoint candidate information 400, and accepts a breakpoint setting input from the user. That is, the breakpoint setting unit 103 accepts an input from the user to set one of the processes in which one microservice MS communicates with another microservice MS as a breakpoint. The breakpoint setting unit 103 generates breakpoint information 500 indicating the breakpoint set by the user on the breakpoint setting screen, and outputs the generated breakpoint information 500 to the new and old application input / output value comparison unit 105.

[0026] The application execution intermediation processing unit 104 (acquisition unit) generates execution files for the new application 20 and the old application 21 based on the new application source code group 200 and the old application source code group 210, and executes the new application 20 and the old application 21. The application execution intermediation processing unit 104 then inputs the same test input value 220 to the new application 20 and the old application 21, and acquires the input value or output value (hereinafter referred to as "input / output value") of each of the new application 20 and the old application 21 based on the application execution intermediation processing unit definition information 300.

[0027] For example, when the same test input value 220 is input to the new application 20 and the old application 21, the application execution intermediation processing unit 104 obtains new application input / output values ​​600 (second input / output values) that are input / output values ​​of the new application 20 from a message exchanged between one microservice MS and another microservice MS, and obtains old application input / output values ​​610 (first input / output values) that are input / output values ​​within the old application 21 from the execution log output from the old application 21.

[0028] Furthermore, the application execution intermediation processing unit 104 temporarily suspends the execution of the new application 20 in a process in which one microservice MS communicates with another microservice MS, and acquires the new application input / output value 600, and when the execution log is output, temporarily suspends the execution of the old application 21 and acquires the old application input / output value 610. If the comparison shows that the new application input / output value 600 and the old application input / output value 610 match, the application execution intermediation processing unit 104 resumes the execution of the new application 20 and the old application 21.

[0029] Furthermore, the application execution intermediation processing unit 104 temporarily suspends the execution of the new application 20 and the old application 21 at the interruption point, and acquires the new application input / output values ​​600 and the old application input / output values ​​610. When an instruction to resume the execution of the new application 20 and the old application 21 is received from the user, the application execution intermediation processing unit 104 resumes the execution of the new application 20 and the old application 21.

[0030] The application execution intermediation processing unit 104 outputs the new application input / output values ​​600 and the old application input / output values ​​610 to the new and old application input / output value comparison unit 105 .

[0031] The new and old application input / output value comparison unit 105 compares the new application input / output values ​​600 and the old application input / output values ​​610, and outputs input / output information 800 or a process restart notification 700 to the screen display unit 106 or the application execution intermediation processing unit 104 based on the comparison result.

[0032] The screen display unit 106 (output unit) displays a display screen based on the input / output information 800. Furthermore, the screen display unit 106 accepts input from the user on the displayed screen.

[0033] <Processing Overview> Next, the process performed by the current / new confirmation support device 10 will be described.

[0034] 4 is a diagram showing a processing example of the current / new confirmation support device 10. The current / new confirmation support device 10 inputs the same test input value to the old application 21 and the new application 20, executes them in parallel, and records and compares input / output values ​​at the MS division boundary of the old application 21 and input / output values ​​of messages transmitted and received by each microservice MS of the new application 20.

[0035] In the illustrated example, the old application input / output value 610 and the new application input / output value 600 match from the start of process AA to the end of process CC, but the input / output value “d” at the end of process BB is “d=6” for the old application 21, whereas it is “d=9” for the new application 20, and so they do not match.

[0036] If the old application input / output values ​​610 and the new application input / output values ​​600 are different, the current / new confirmation support device 10 temporarily suspends the execution of the old application 21 and the new application 20 and displays an execution result inconsistency information display screen 910.

[0037] (Execution result inconsistency information display screen) FIG. 5 is a diagram showing an example of an execution result discrepancy information display screen 910. The execution result discrepancy information display screen 910 includes an area 911 for displaying a request message (test input value 220) input to the old application 21 and the new application 20, an area 912 for displaying a location where the input / output values ​​are inconsistent (in the illustrated example, "MS-B to MS-A"), an area 913 for displaying the old application input / output values ​​610, an area 914 for displaying the new application input / output values ​​600, and an area 915 for displaying a location causing the discrepancy (in the illustrated example, "microservice MS-B"). For example, the screen display unit 106 displays in the area 912 the microservice MS that transmits the message of the new application input / output values ​​600 and the microservice MS that receives the message of the new application input / output values ​​600. In addition, the screen display unit 106 identifies, for example, the microservice MS that transmitted the message where the input / output value is inconsistent with the old application 21 as a location causing the discrepancy, and displays it in the area 915.

[0038] 6 is a diagram showing another processing example of the current / new confirmation support device 10. The current / new confirmation support device 10 receives from the user an input for setting an interruption point for temporarily suspending (interrupting) the execution of the old application 21 and the new application 20. In the illustrated example, the user sets the process of sending a message from the microservice MS-B to the microservice MS-C as the interruption point. The current / new confirmation support device 10 identifies an MS division boundary that corresponds to the interruption point of the new application 20, and sets the identified MS division boundary as the interruption point of the old application 21.

[0039] Then, the current / new confirmation support device 10 inputs the same test input value to the old application 21 and the new application 20 and executes them in parallel, and when the processing of the old application 21 and the new application 20 reaches an interruption point, the execution of the old application 21 and the new application 20 is temporarily stopped and an interruption point information display screen 920 is displayed.

[0040] (Break point information display screen) 7 is a diagram showing an example of the breakpoint information display screen 920. The breakpoint information display screen 920 includes an area 921 for displaying the request message (test input value 220) input to the old application 21 and the new application 20, an area 922 for displaying the breakpoint ("MS-B→MS-C" in the illustrated example), an area 923 for displaying the old application input / output value 610, an area 924 for displaying the new application input / output value 600, an area 925 for displaying the cause of the mismatch, and a button 926 for receiving an instruction from the user to execute to the next breakpoint. In the illustrated example, the input / output value of the old application 21 and the input / output value of the new application 20 at the breakpoint match, so nothing is displayed in the area 925. The screen display unit 106 displays, for example, in the area 922, the microservice MS that transmits the message of the new application input / output value 600 and the microservice MS that receives the message of the new application input / output value 600.

[0041] When the current / new confirmation support device 10 receives an input from the user pressing the button 926 on the interruption point information display screen 920, it resumes the execution of the old application 21 and the new application 20 until the next interruption point.

[0042] <Pretreatment> 8 is a process flow diagram illustrating pre-processing for comparing input / output values ​​of the old application 21 and the new application 20. The pre-processing shown in the figure is executed, for example, when a predetermined input is made by the user to the current / new confirmation support device 10 (for example, when the new application source code group 200 or the old application source code group 210 is input, etc.), or at a predetermined timing (for example, at a predetermined time, at a predetermined time interval, etc.).

[0043] First, the new application processing intermediation function generation unit 101 rewrites the address of each microservice MS in the new application source code group 200 to the address of the application execution intermediation processing unit 104 (S1).

[0044] 9 is a diagram for explaining the processing of the new application processing intermediation function generation unit 101. In the following explanation, a case will be explained in which the URL of the microservice MS-A is "localhost:8079", the URL of the microservice MS-B is "localhost:8078", and the URL of the microservice MS-C is "localhost:8077" in the new application source code group 200 as an example.

[0045] As shown in the figure, the new application process intermediation function generation unit 101 rewrites the destination URL of a request message sent by each microservice MS to the URL of the application execution intermediation processing unit 104. In the example shown in the figure, the new application process intermediation function generation unit 101 rewrites the URL of the microservice MS-B in the source code of the microservice MS-A to the URL of the application execution intermediation processing unit 104, "localhost:8076", and rewrites the URL of the microservice MS-C in the source code of the microservice MS-B to the URL of the application execution intermediation processing unit 104, "localhost:8075". The new application process intermediation function generation unit 101 outputs the new application source code group 200 with the rewritten URL to the application execution intermediation processing unit 104.

[0046] Next, the new application processing intermediation function generation unit 101 generates application execution intermediation processing unit definition information 300 that the application execution intermediation processing unit 104 references when intermediating messages between microservices MS (S2).

[0047] (Application execution mediation processing unit definition information) 10 is a diagram showing an example of application execution intermediation processing unit definition information 300. The application execution intermediation processing unit definition information 300 has data items of a process intermediation unit URL 301, a source or destination 302, and a URL 303. The process intermediation unit URL 301 is set with the URL of the application execution intermediation processing unit 104 that mediates processing between microservices MS. The source or destination 302 is set with the microservice MS that is the source or destination of a message mediated by the process intermediation unit URL 301. The URL 303 is set with the URL of the microservice MS that is set in the source or destination 302.

[0048] In the data example shown in the figure, the application execution intermediation processing unit definition information 300 defines that the processing intermediation unit URL "localhost:8076" mediates messages sent and received between microservices MS-A and MS-B, and the processing intermediation unit URL "localhost:8075" mediates messages sent and received between microservices MS-B and MS-C.

[0049] Next, the new application processing mediation function generation unit 101 generates break point candidate information 400 indicating candidates for break points (hereinafter, referred to as "break point candidates") at which the execution of the new application 20 and the old application 21 is temporarily stopped. For example, the new application processing mediation function generation unit 101 extracts a process of sending a message from one microservice MS to another microservice MS as a break point candidate.

[0050] (Break point candidate information 400) 11 is a diagram showing an example of breakpoint candidate information 400. The breakpoint candidate information 400 has data items of a microservice 401 and a process 402. A breakpoint candidate of the new application 20 is set in the microservice 401. A process of the old application 21 corresponding to the microservice 401 is set in the process 402 as a breakpoint candidate of the old application 21. In the data example of the first line shown in the figure, a process of sending a message from the microservice MS-A to the microservice MS-B is set as a breakpoint candidate of the new application 20, and a process of the process AA calling a process BB is set as a breakpoint candidate of the old application 21.

[0051] The new application process mediation function generation unit 101 identifies the process 402 of the old application 21 corresponding to the microservice 401 by comparing the new application source code group 200 and the old application source code group 210. For example, the new application process mediation function generation unit 101 identifies a function having source code corresponding to (for example, substantially identical to) the source code of the microservice MS-A as the process AA corresponding to the microservice MS-A. Alternatively, the new application process mediation function generation unit 101 may identify the process 402 of the old application 21 corresponding to the microservice 401 by referring to a setting file or the like indicating an MS division boundary in the old application 21. The setting file is generated, for example, when the function of the old application 21 is divided into multiple microservices MS.

[0052] Next, old application process intermediation function generation unit 102 rewrites old application source code group 210 so that old application 21 outputs an execution log to application execution intermediation processing unit 104 (S4).

[0053] 12 is a diagram for explaining the processing of old application process mediation function generation unit 102. As shown in the figure, old application process mediation function generation unit 102 adds processing 2111 for outputting an execution log to application execution mediation processing unit 104 to the MS division boundary in old application source code group 210. Note that old application process mediation function generation unit 102 identifies the MS division boundary by comparing new application source code group 200 with old application source code group 210. Alternatively, old application process mediation function generation unit 102 may identify the MS division boundary by referring to a setting file or the like indicating the MS division boundary in old application 21.

[0054] In the illustrated example, the old application process intermediation function generation unit 102 adds process 2111 to the function that executes process BB corresponding to microservice MS-B, which sends an execution log (values ​​of argument a and argument b) to the URL "localhost:8081" of the application execution intermediation processing unit 104 and then waits until a resume notification, which will be described later, is received. That is, the old application process intermediation function generation unit 102 rewrites the old application source code group 210 so as to execute process 2111 before executing process BB. The old application process intermediation function generation unit 102 outputs the rewritten old application source code group 210 to the application execution intermediation processing unit 104.

[0055] Next, the old application processing intermediation function generation unit 102 adds information to be referenced by the application execution intermediation processing unit 104 when acquiring the execution log of the old application 21 to the application execution intermediation processing unit definition information 300, thereby updating the application execution intermediation processing unit definition information 300 (S5).

[0056] (Application execution mediation processing unit definition information) 13 is a diagram showing an example of updated application execution intermediation processing unit definition information 300. In the illustrated example, the data on the third line (processing intermediation unit URL "localhost:8081", source or destination "current", URL "localhost:8080") has been added to application execution intermediation processing unit definition information 300. Here, "current" of source or destination 302 represents the old application 21.

[0057] Next, the break point setting unit 103 displays a break point setting screen 510 on the display of the output device 15 or the like based on the break point candidate information 400, and receives input for setting a break point from the user (S6).

[0058] (Break point setting screen) FIG. 14 is a diagram showing an example of a breakpoint setting screen 510. The breakpoint setting unit 103 refers to the breakpoint candidate information 400 and displays a list of breakpoint candidates (a table having items of microservice 511, process 512, and breakpoint 513) on the breakpoint setting screen 510. Then, the breakpoint setting unit 103 accepts a breakpoint setting input from the user on the breakpoint setting screen 510. The user selects one or more breakpoints from the displayed breakpoint candidates. In the illustrated example, the breakpoint setting unit 103 displays "◯" on the breakpoint 513 selected by the user. The breakpoint setting unit 103 generates breakpoint information 500 representing the breakpoint selected by the user on the breakpoint setting screen 510 (in the illustrated example, {microservice "MS-B→MS-C", process "process BB→process CC"}).

[0059] (Break point information 500) FIG. 15 is a diagram illustrating an example of breakpoint information 500. The breakpoint information 500 has data items of a microservice 501 and a process 502. A breakpoint of the new application 20 is set in the microservice 501. A process of the old application 21 corresponding to the microservice 501 is set in the process 402 as a breakpoint of the old application 21. In the illustrated example, a process of sending a message from the microservice MS-B of the new application 20 to the microservice MS-C, and a process of calling a process CC by the process BB of the old application 21 are set as breakpoints. The breakpoint setting unit 103 outputs the generated breakpoint information 500 to the new and old application input / output value comparison unit 105, and then ends this pre-processing.

[0060] Next, a process in which application execution intermediation processing unit 104, new and old application input / output value comparison unit 105, and screen display unit 106 compare new application input / output values ​​600 and old application input / output values ​​610 and display the comparison results will be described in detail.

[0061] <Application execution mediation process> Fig. 16 is a process flow diagram explaining the application execution intermediation process executed by the application execution intermediation processing unit 104. Fig. 17 is a diagram explaining the process of the application execution intermediation processing unit 104. The application execution intermediation process is executed, for example, when a predetermined input is made by the user to the current / current confirmation support device 10 (for example, when the test input value 220 is input, etc.), or at a predetermined timing (for example, at a predetermined time, at a predetermined time interval, etc.).

[0062] First, the application execution intermediation processing unit 104 executes the old application 21 and the new application 20 (S101).

[0063] Next, the application execution intermediation processing unit 104 executes the following processes of S102 to S106 for each of one or more test input values ​​220.

[0064] Specifically, first, the application execution intermediation unit 104 transmits a message of the test input value 220 to each of the old application 21 and the new application 20 (S102). For example, the application execution intermediation unit 104 transmits the message of the test input value 220 to the microservice MS-A of the new application 20 and the old application 21.

[0065] Next, when the application execution intermediation processing unit 104 receives a message from the new application 20 and an execution log from the old application 21, it extracts input / output values ​​from the received message and execution log, and transmits the new application input / output value 600 extracted from the message and the old application input / output value 610 extracted from the execution log to the new and old application input / output value comparison unit 105 (step S103). For example, after transmitting the message of the test input value 220, the application execution intermediation processing unit 104 receives a message addressed to the microservice MS-B from the microservice MS-A, and receives the execution log of the MS division boundary between the processes AA and BB from the old application 21.

[0066] Next, the application execution intermediation processing unit 104 determines whether or not a process restart notification, which will be described later, has been received from the old and new application input / output value comparison unit 105 or the screen display unit 106 (S104). If the process restart notification has not been received (S103: No), the process of S104 is repeated.

[0067] On the other hand, if the application execution intermediation processing unit 104 receives the processing restart notification (S104: Yes), it determines whether the processing of the old application 21 and the new application 20 has ended (S105). For example, if the application execution intermediation processing unit 104 receives output values ​​for the test input value 220 from the old application 21 and the new application 20, it determines that the processing of the old application 21 and the new application 20 has ended.

[0068] If the processing of the old application 21 and the new application 20 has not ended (S105: No), the application execution intermediation processing unit 104 sends the message received from the new application 20 to the microservice MS that is the original destination of the message, sends a resume notification to the old application 21 (S106), and returns to the processing of S103. For example, the application execution intermediation processing unit 104 sends the message addressed to the microservice MS-B received from the microservice MS-A to the microservice MS-B, and sends a resume notification to the old application 21.

[0069] On the other hand, if the processing of the old application 21 and the new application 20 is completed (S105: Yes), the application execution intermediation processing unit 104 ends the processing of the test input value 220.

[0070] <Input / output value comparison processing> Fig. 18 is a process flow diagram illustrating the input / output value comparison process executed by the new and old application input / output value comparison unit 105. Fig. 19 is a diagram illustrating the process of the new and old application input / output value comparison unit 105. The input / output value comparison process is executed, for example, when the new and old application input / output value comparison unit 105 receives the new application input / output values ​​600 and the old application input / output values ​​610 from the application execution intermediation processing unit 104.

[0071] First, the new and old application input / output value comparison unit 105 compares the new application input / output value 600 with the old application input / output value 610 (S201).

[0072] If the new application input / output values ​​600 and the old application input / output values ​​610 do not match (S201: mismatch), the new and old application input / output value comparison unit 105 transmits input / output information 800 of the mismatched portion to the screen display unit 106 (S202), and ends this input / output value comparison process. The input / output information 800 of the mismatched portion includes the test input value 220, the new application input / output value 600, the old application input / output value 610, the mismatched portion (the microservice MS of the transmission source of the message and the microservice MS of the transmission destination), and the cause portion (for example, the microservice MS of the transmission source of the message). The screen display unit 106, which has received the input / output information 800 of the mismatched portion, displays the execution result mismatch information display screen 910 described above.

[0073] On the other hand, if the new application input / output values ​​600 and the old application input / output values ​​610 match (S201: match), the new and old application input / output value comparison unit 105 refers to the breakpoint information 500 and determines whether the corresponding location is set as a breakpoint (S203).

[0074] If an interruption point is set (S203: Yes), the new and old application input / output value comparison unit 105 transmits the interruption point input / output information 800 to the screen display unit 106 (S204) and ends this input / output value comparison process. The interruption point input / output information 800 includes the test input value 220, the new application input / output value 600, the old application input / output value 610, and the interruption point (the microservice MS of the message transmission source and the microservice MS of the transmission destination).

[0075] The screen display unit 106, which has received the breakpoint input / output information 800, displays the above-mentioned breakpoint information display screen 920. When the screen display unit 106 receives an input from the user pressing a button 926 on the breakpoint information display screen 920, it transmits a process resume notification 700 to the application execution intermediation processing unit 104.

[0076] On the other hand, if the interruption point has not been set (S203: No), the new and old application input / output value comparison unit 105 sends a process resume notification 700 to the application execution intermediation processing unit 104 (S205) and ends this input / output value comparison process.

[0077] As described above, the current / new confirmation support device 10 of this embodiment is a support device that supports verification of the operation of a new application 20 in which multiple components generated by dividing an old application 21 communicate with each other, and when the same input value is input to the new application 20 and the old application 21, it obtains new application input / output values ​​600 that are input values ​​or output values ​​in communication between microservices MS in the new application 20 (when a microservice MS communicates with another microservice MS) and old application input / output values ​​610 in the old application 21 that correspond to the new application input / output values ​​600, compares the new application input / output values ​​600 and the old application input / output values ​​610, and outputs information based on the results of the comparison.

[0078] That is, the current / new confirmation support device 10 of the present embodiment outputs information based on a result of comparing a new application input / output value 600 when a microservice MS communicates with another microservice MS and an old application input / output value 610 corresponding to the new application input / output value 600. The new application input / output value 600 obtained by inputting the same value to the old application 21 and the new application 20 reflects the operation result of the new application 20 corresponding to the old application 21 in units of microservice MS. Therefore, by comparing the new application input / output value 600 and the old application input / output value 610, it is possible to identify not only the match / mismatch of the input / output values ​​of the old application 21 and the new application 20, but also the cause of the current / new mismatch with high granularity in units of microservice MS. That is, by comparing the input / output values ​​in the communication between the microservices MS, the user can more easily identify which of the multiple microservices MS is the cause when a mismatch in the execution results occurs. Therefore, when migrating an existing system (old application 21) to a new system (new application 20) in which multiple components cooperate, it is possible to support verification of the operation of the new system (new application 20).

[0079] Furthermore, when the comparison result shows that the new application input / output value 600 and the old application input / output value 610 do not match, the current / new confirmation support device 10 of this embodiment outputs information based on the comparison result.

[0080] With this configuration, it is possible to identify the location of the mismatch with high granularity for each microservice MS. For example, the user can refer to the output information and grasp the location where the input / output values ​​do not match between the new application 20 and the old application 21, and can more easily identify which microservice MS is the cause of the mismatch in execution results. In other words, when there is a difference in function between the new application 20 and the old application 21, the user can easily identify which microservice MS is the cause of the difference.

[0081] In addition, the current / new confirmation support device 10 of this embodiment accepts an input from a user to set any one of the processes communicating between the microservices MS as a breakpoint, and outputs information based on the result of the comparison at the breakpoint.

[0082] With this configuration, any of the processes in which the microservices MS communicate with each other can be set as a breakpoint, so that breakpoints can be set in finer processing units. This allows the execution state of the program to be checked in detail for each processing unit with high granularity. This allows the user to debug the new application 20 more efficiently.

[0083] Furthermore, the current / new confirmation support device 10 of this embodiment temporarily suspends the execution of the new application 20 and the old application 21 at the interruption point to acquire the new application input / output value 600 and the old application input / output value 610, and upon receiving an instruction from the user to resume the execution of the new application 20 and the old application 21, resumes the execution of the new application 20 and the old application 21.

[0084] With this configuration, the user can stop both the new application 20 and the old application 21 at a point (interruption point) where the same process is executed, and check whether the input / output values ​​match or not. This allows the user to perform debugging while executing the new application 20 and the old application 21 in parallel, making the debugging of the new application 20 more efficient. Even if the input / output values ​​match, the state of the database may differ. Therefore, by temporarily suspending the execution of the new application 20 and the old application 21 at a specific point (interruption point), the user can check the state of the database, etc. at the specific point (interruption point). Then, if the state of the database, etc. does not match between the new application 20 and the old application 21 as a result of the check, the user can more easily identify the microservice MS causing this (for example, identifying the microservice MS that sent the message at the interruption point as the microservice MS causing the problem).

[0085] Furthermore, the current / new confirmation support device 10 of this embodiment adds a process of outputting an execution log including input values ​​or output values ​​between each process in the old application 21 to the process of the old application 21 corresponding to the process of communication between the microservices MS in the new application 20, and acquires the old application input / output value 610 from the execution log.

[0086] With this configuration, it is possible to acquire from the old application 21 the old application input / output values ​​610 corresponding to the new application input / output values ​​600 of a message transmitted from a microservice MS to another microservice MS. That is, it is possible to easily acquire input / output data between each process in the old application 21 corresponding to the request message and response message of the microservice MS.

[0087] Furthermore, the current / new confirmation support device 10 of this embodiment pauses the execution of the new application 20 in the process of communicating between the microservices MS to acquire the new application input / output value 600, pauses the execution of the old application 21 to acquire the old application input / output value 610 when the execution log is output, and if the new application input / output value 600 and the old application input / output value 610 match as a result of the comparison, resumes the execution of the new application 20 and the old application 21.

[0088] With this configuration, if the new application input / output value 600 and the old application input / output value 610 do not match, the execution of both the new application 20 and the old application 21 can be temporarily stopped at the corresponding location. This allows the user to debug the new application 20 while executing the new application 20 and the old application 21 in parallel, making the debugging of the new application 20 more efficient.

[0089] Furthermore, when the comparison result shows that the new application input / output value 600 and the old application input / output value 610 do not match, the current / new confirmation support device 10 of this embodiment outputs, as information based on the comparison result, information identifying the new application input / output value 600, the old application input / output value 610, the microservice MS that transmits the message of the new application input / output value 600, and the microservice MS that receives the message of the new application input / output value 600.

[0090] With this configuration, when the new application input / output values ​​600 and the old application input / output values ​​610 do not match, the user can easily grasp the microservice MS that sends the new application input / output values ​​600, the old application input / output values ​​610, and the new application input / output value 600 message, and the microservice MS that receives the new application input / output value 600 message, thereby making the debugging of the new application 20 more efficient.

[0091] In addition, the current / new confirmation support device 10 of this embodiment outputs information identifying the new application input / output value 600, the old application input / output value 610, the microservice MS that transmits the message of the new application input / output value 600, and the microservice MS that receives the message of the new application input / output value 600 at the interruption point.

[0092] With this configuration, the user can easily grasp the new application input / output values ​​600, the old application input / output values ​​610, the microservice MS that sends the message of the new application input / output values ​​600, and the microservice MS that receives the message of the new application input / output values ​​600 at the interruption point, making the debugging of the new application 20 more efficient.

[0093] The present invention is not limited to the above-described embodiment, and can be implemented using any components without departing from the scope of the present invention. The above-described embodiments and modifications are merely examples, and the present invention is not limited to these contents as long as the features of the invention are not impaired. In addition, although various embodiments and modifications have been described above, the present invention is not limited to these contents. Other aspects conceivable within the scope of the technical idea of ​​the present invention are also included in the scope of the present invention.

[0094] For example, part of the hardware included in each device of this embodiment may be provided in another device.

[0095] In addition, each service or each program of the test data generation device may be provided in another device, a program may be made up of multiple programs, or multiple programs may be integrated into one program. [Explanation of symbols]

[0096] 10 Current and new confirmation support device 101 New application processing intermediary function generation unit 102 Old application processing mediation function generation unit 103 Break point setting section 104 Application execution mediation processing unit 105 Comparison of input / output values ​​between old and new applications 106 Screen display section 20 New Apps 21 Old App

Claims

1. A support device for supporting verification of an operation of a second system in which a plurality of components generated by dividing a first system communicate with each other, comprising: A processor and a memory, an acquisition unit that acquires a second input / output value that is an input value or an output value in communication between components in the second system when an identical input value is input to the first system and the second system, and a first input / output value in the first system that corresponds to the second input / output value; a comparison unit that compares the first input / output value with the second input / output value; an output unit that outputs information based on a result of the comparison; A support device comprising:

2. The output unit outputs information based on a result of the comparison when the first input / output value and the second input / output value do not match as a result of the comparison. The support device according to claim 1 .

3. a setting unit configured to receive an input from a user to set a breakpoint for any one of processes for communication between components in the second system; The output unit outputs information based on a result of the comparison at the breakpoint. The support device according to claim 1 .

4. The acquisition unit suspends execution of the first system and the second system at the breakpoint to acquire the first input / output value and the second input / output value, and when an instruction to resume the execution of the first system and the second system is received from a user, resumes the execution of the first system and the second system. The support device according to claim 3.

5. a generation unit that adds a process of outputting an execution log including an input value or an output value between each process in the first system to a process of the first system corresponding to a process of communication between components in the second system; The acquisition unit acquires the first input / output value from the execution log. The support device according to claim 1 .

6. The acquisition unit suspends execution of the second system in a process of communicating between components in the second system to acquire the second input / output value, suspends execution of the first system to acquire the first input / output value when the execution log is output, and resumes execution of the first system and the second system when the first input / output value and the second input / output value match as a result of the comparison.

6. The support device according to claim 5.

7. When the first input / output value and the second input / output value do not match as a result of the comparison, the output unit outputs, as information based on a result of the comparison, information identifying the first input / output value, the second input / output value, a component that transmits a message of the second input / output value, and a component that receives the message of the second input / output value. The support device according to claim 2 .

8. The output unit outputs information for identifying the first input / output value, the second input / output value, a component that transmits a message of the second input / output value, and a component that receives the message of the second input / output value at the breakpoint. The support device according to claim 3.

9. An information processing device that supports verification of an operation of a second system in which a plurality of components generated by dividing a first system communicate with each other, an acquisition process for acquiring a second input / output value, which is an input value or an output value in communication between components in the second system when an identical input value is input to the first system and the second system, and a first input / output value in the first system corresponding to the second input / output value; a comparison process of comparing the first input / output value with the second input / output value; an output process for outputting information based on a result of the comparison; How to help carry it out.

10. An information processing device that supports verification of an operation of a second system in which a plurality of components generated by dividing a first system communicate with each other, an acquisition process for acquiring a second input / output value, which is an input value or an output value in communication between components in the second system when an identical input value is input to the first system and the second system, and a first input / output value in the first system corresponding to the second input / output value; a comparison process of comparing the first input / output value with the second input / output value; an output process for outputting information based on a result of the comparison; A support program to implement the above.

Citation Information

Patent Citations

  • Software component combination test method

    JP1998232795A

  • Fault isolation and identification in versioned microservices

    US20180225182A1

  • Object-oriented program debugging method

    JP2000284991A

  • Output comparison method for plural information systems

    JP2014026480A