Decentralized software verification system

By adopting a decentralized software verification system in the product verification system, using multiple independent processors and automated data collectors, the problem of difficulty in verifying environment or object changes in the prior art is solved, and flexibility and efficiency are achieved.

CN114253830BActive Publication Date: 2025-03-28ALPHA NETWORKS INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202011098475.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-09-22
Filing Date
2020-10-14
Publication Date
2025-03-28
Estimated Expiration
2040-10-14

AI Technical Summary

Technical Problem

The prior art is difficult to adapt to changes in the verification environment or objects in product verification, and the design is complex and the ability to adapt to changes is insufficient.

Method used

A distributed software verification system is used, which includes multiple independently running processors, a switch and a data collector. The processor does not need to receive external instructions. The switch connects the processor and the data collector through electrical coupling. The data collector automatically distributes network addresses. The processors use the TCP/IP protocol to transmit report information.

Benefits of technology

The system simplifies the design of verification software, avoids complex competition conditions, can easily adapt to verification quantity or object changes, and reduces the difficulty and cost of system design and adjustment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114253830B_ABST
    Figure CN114253830B_ABST
Patent Text Reader

Abstract

A distributed software verification system includes multiple processors, a switch and a data collector. Each processor can still run a verification software without receiving external instructions; the switch includes multiple first-end connection ports and a second-end connection port, the second-end connection port is electrically coupled to the first-end connection port, and each first-end connection port is suitable for being electrically coupled to a processor; the data collector is electrically coupled to the second-end connection port. Each processor runs the verification software to verify the status of the corresponding target object and generates report information to the data collector, and the objects verified by different processors are different target objects.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a verification system, and in particular to a distributed software verification system capable of verifying multiple target objects at the same time. Background Art

[0002] When product verification is performed at the factory, including product function verification or firmware update and verification procedures, it is generally performed in a master-slave (Client / Server) manner. Furthermore, in order to meet the needs of mass production, it is best to perform verification procedures for multiple products at the same time to increase the amount of verification that can be completed per unit time. The specific implementation method can be found in the contents of the patent application with US patent publication number US 20190392869 and the patent application with Taiwan patent number TW107114058.

[0003] The aforementioned prior arts all use a master-slave approach to simultaneously detect or verify multiple objects. In simple terms, the main architecture of these prior arts is to use a main processor (such as a personal computer) that can run independently with many instruction executors, and to control the instruction executors through instructions issued from the main processor to detect or verify the objects they are responsible for. Under this architecture, all instruction executors need to receive instruction codes from the main processor before they can execute the instruction codes to perform corresponding operations. Therefore, a complete mechanism must be designed in the control program executed by the main processor to ensure that the stream channel between it and each instruction executor will not be affected by other stream channels.

[0004] In addition to the need to consider the problems caused by the streaming channel, whenever the number of instruction executors changes, the designer must modify the aforementioned control program. Therefore, the existing verification mechanism not only often encounters difficulties in design, but also has insufficient ability to adapt to changes. Summary of the invention

[0005] In view of this, an object of the present invention is to provide a decentralized software verification system, which does not require the design of a complex control program and can be easily changed as the verification environment or the verification object changes.

[0006] From one aspect, the description of the present invention proposes a distributed software verification system, including: multiple processors, a switch and a data collector. Each processor does not need to receive external instructions in the process of running the verification software to verify the status of the target object; the switch includes multiple first-end connection ports and a second-end connection port, the second-end connection port is electrically coupled to the above-mentioned first-end connection port, and each first-end connection port is suitable for being electrically coupled to a processor; the data collector is electrically coupled to the second-end connection port. Each processor runs the above-mentioned verification software to verify the status of the corresponding target object and generates a report information according to the verification process. This report information is transmitted to the data collector through the first-end connection port and the second-end connection port coupled to the processor, and the objects verified by different processors are different target objects.

[0007] In one embodiment, the software verification system further includes a data input device, which is electrically coupled to a selected processor among the processors, and the data input device provides input data to the selected processor so that the selected processor can obtain information of the target object to be verified.

[0008] In one embodiment, the data input device comprises a quick response matrix code reader.

[0009] In one embodiment, a channel for transmitting the report information is established between the processor and the data collector using the TCP / IP protocol architecture.

[0010] In one embodiment, the data collector establishes a channel for transmitting the report information with the processor by automatically assigning a network address.

[0011] According to the above, the distributed software verification system provided by the present invention uses multiple independently running processors to respectively execute verification software to verify a target object, so the design of the verification software does not need to consider complex race conditions. Moreover, the distributed software verification system provided by the present invention only needs to directly change the number of processors or directly replace the verification software in the corresponding processor to adapt to the situation where the number of verifications or the verification objects change. In summary, this distributed software verification system has a system architecture that is easy to design and adjust, so it can reduce the manpower and time required to set up the verification system. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Figure 1 FIG. 4 is a system block diagram of a distributed software verification system according to an embodiment of the present invention.

[0013] Figure 2FIG. 4 is a schematic diagram of functional modules of a processor according to an embodiment of the present invention.

[0014] Figure 3 FIG. 4 is an operation flow chart of a distributed software verification system according to an embodiment of the present invention.

[0015] The reference numerals are described as follows:

[0016] 10: Software Verification System

[0017] 20, 150-162: Processor

[0018] 22: Data Input Device

[0019] 24, 180-192: Target object

[0020] 100: Data Collector

[0021] 110: Switch

[0022] 112, 120~132: Connection port

[0023] 200: Verify software

[0024] 210: Execution unit

[0025] 220: External interface

[0026] INF, INF1, INF2, INF3, INF4: Report information

[0027] S300-S332: Implementation steps of an embodiment of the present invention DETAILED DESCRIPTION

[0028] Please refer to Figure 1, which is a system block diagram of a distributed software verification system according to an embodiment of the present invention. In this embodiment, the distributed software verification system 10 includes a data collector 100, a switch 110 and a plurality of processors 150, 152, 160 and 162. As shown in the figure, the switch 110 includes a plurality of connection ports (hereinafter referred to as first end connection ports) 120, 122, 130 and 132 electrically coupled to the processors 150, 152, 160 and 162 and a connection port (hereinafter referred to as second end connection port) 112 electrically coupled to the data collector 100, wherein the second end connection port 112 is connected to each of the first end connection ports 120, 122, 130 and 132. The processor 150 generates corresponding report information INF1 through the process of verifying the target object 180, and the report information INF1 can be transmitted to the data collector 100 via the first port connection port 120 and the second port connection port 112; the processor 152 generates corresponding report information INF2 through the process of verifying the target object 182, and the report information INF2 can be transmitted to the data collector 100 via the first port connection port 122 and the second port connection port 112; the processor 160 generates corresponding report information INF3 through the process of verifying the target object 190, This report information INF3 can be transmitted to the data collector 100 via the first end connection port 130 and the second end connection port 112; the processor 162 generates corresponding report information INF4 through the process of verifying the target object 192, and this report information INF4 can be transmitted to the data collector 100 via the first end connection port 132 and the second end connection port 112; the data collector 100 can also transmit data to the processors 150, 152, 160 and 162 via the second end connection port 112 and the first end connection ports 120, 122, 130 and 132.

[0029] In order to transmit data between the data collector 100 and the processors 150, 152, 160 and 162, it is recommended that the same communication protocol be used between the data collector 100 and the processors 150, 152, 160 and 162. For example, a protocol framework of Transmission Control Protocol (TCP) / Internet Protocol (IP) can be used to establish a channel for transmitting report information between the data collector 100 and the processors 150, 152, 160 and 162. Furthermore, when the TCP / IP protocol framework is used to establish a channel for transmitting report information, the data collector 100 can also set the addresses of the data collector 100 and the processors 150, 152, 160 and 162 by automatically assigning network addresses for the control center. By adopting the method of automatically assigning network addresses, when a new processor is to be added to the distributed software verification system 10, the new channel connection can be completed quickly, and when some processors are to be removed from the distributed software verification system 10, it will not affect the processors that remain in the distributed software verification system 10.

[0030] In order to reduce the mutual influence between the processors 150, 152, 160 and 162, in addition to selecting an appropriate transmission protocol, the number of communications between the processors 150, 152, 160 and 162 and the data collector 100 can also be reduced as much as possible to avoid race hazards (or race conditions). For this reason, the processors used in the embodiments of the present invention are recommended to be processors that can operate independently, that is, each processor can complete the verification of the status of the corresponding target object without receiving any external instructions. Please refer to Figure 2 , which is a functional module diagram of a processor according to an embodiment of the present invention. In this embodiment, the processor 20 includes an execution unit 210, which can execute the verification software 200 stored in the processor 20, and perform corresponding verification operations on the target object 24 by executing the verification software 200 (including but not limited to determining whether the target object is a target that can be verified, updating the firmware of the target object, and determining whether the firmware update is successful, etc.). The report information INF obtained by the execution unit 210 by verifying the corresponding target object (including executing the verification software 200) will be transmitted by the execution unit 210 to the outside. Figure 1 A data collector 100 is shown.

[0031] In this embodiment, the processor 20 can be a single-chip computer such as Raspberry Pi. By using a single-chip computer, the user can use various external interfaces to expand and obtain the required functions. Figure 2 As shown, the external interface 220 is electrically coupled to the data input device 22 on one side and electrically coupled to the execution unit 210 on the other side so as to transmit the data of the data input device 22 to the execution unit 210. For example, the external interface 220 may include a storage interface and a Universal Serial Bus (USB) interface in a single-chip computer, and the data input device 22 may include a memory card that can be installed in the storage interface and a camera module that can be installed on the USB interface. The camera module may include a one-dimensional barcode reader, a two-dimensional barcode reader, or an image recognizer that can perform image or text recognition. For example, when the data input device 22 includes a two-dimensional barcode reader, such as a Quick Response Code (QR Code) reader, the execution unit 210 can use the QR Code reader to read the QR tag that records various information of the target object 24 (such as the type, version of the object, or the type of verification operation to be performed, etc.), and obtain the corresponding verification software from the memory card as the verification software 200 by reading the information obtained from the QR tag; or, when the data input device 22 includes an image recognition device that can perform image or text recognition, an artificial intelligence system can be further used in the processor to analyze the content of the obtained image or text and perform corresponding operations accordingly. In this way, the processor 20 can easily change the verification operation it performs as needed. Further, since each processor can be electrically coupled to a corresponding data input device 22 when the distributed software verification system 10 is actually built, the distributed software verification system 10 can also have better adjustment characteristics.

[0032] Furthermore, the user can also use the output interface (not shown) of the processor 20 to install the light signal, and the processor 20 can be electrically coupled to the light signal through the output interface to control the color or flashing frequency of the light signal according to the current status of the verification operation. In this way, the user can easily understand the current status of the verification operation and take corresponding countermeasures.

[0033] Please refer to Figure 1The report information INF1, INF2, INF3 and INF4 generated by the processors 150, 152, 160 and 162 will eventually be transmitted to the data collector 100. The report information INF1, INF2, INF3 and INF4 include but are not limited to the judgment result of whether the target object is executable verification, the versions before and after the firmware update, and whether the firmware update is successful. The data collector 100 will record this information and can analyze or count it according to needs, and the user can use the analysis or statistical results of the data collector 100 to conduct other research or system improvement design.

[0034] An example is given below to enable those skilled in the art to more clearly understand the technical content provided by the present disclosure. It should be clarified that in order to make the example easy to use, it will be explained in a fixed processing sequence and a specific industrial standard during the description process, but in actual application, the processing sequence and industrial standard can still be appropriately replaced according to actual needs and under the technical spirit of the present invention.

[0035] Please refer to Figure 1 and Figure 3 ,in Figure 3 FIG. 1 is an operation flow chart of a distributed software verification system according to an embodiment of the present invention. Figure 1 The processor 150 in FIG. 1 is used as an example for explanation, and it is assumed that the communication protocol used between the components is the TCP / IP protocol architecture. Figure 3 After booting up, the processor 150 will send a request to establish a connection (step S300). Since the processor 150 has not established a connection with the data collector 100 at this time, the processor 150 can use a broadcast method to send the connection request in step S302.

[0036] After receiving the connection request sent by the processor 150 in a broadcasting manner, the data collector 100 can use the method of automatically assigning a network address to set the address of the processor 150 and thereby establish a TCP / IP connection between the data collector 100 and the processor 150 (step S302). The specific method of automatically assigning a network address and the method of establishing a TCP / IP connection can be referred to the relevant protocol content and will not be described in detail here.

[0037] After the TCP / IP connection between the data collector 100 and the processor 150 is established, the processor 150 can follow the TCP / IP connection to inquire the data collector 100 whether there is a new version of the verification software (step S304). When there is no new version of the verification software, the data collector 100 will generate a corresponding reply message to the processor 150 (step S306), so the processor 150 can confirm that it is in a state where it can start the verification program, that is, it can use the existing verification software to verify the target object 180 (step S308); conversely, when there is a new version of the verification software, the data collector 100 will also generate another reply message to the processor 150 (step S306), so the processor 150 will request the data collector 100 to obtain the new version of the verification software (step S330), and after obtaining the new version of the verification software from the data collector 100, replace the original verification software with the new version of the verification software (step S332), and then, the processor 150 can determine that it is in a state where it can start the verification program and use its existing verification software (that is, the new version of the verification software) to verify the target object 180 (step S308). It is worth mentioning that other programs can be added during the execution of steps S330 to S332 to further protect the security of data transmission or the efficiency of system operation. For example, a security program can be added to determine whether the processor 150 has the authority to obtain the new version of the verification software from the data collector 100, or a program that limits the number of transmissions can be added to issue a warning or re-check the connection after multiple data transmission failures to avoid falling into a deadlock due to network connection problems.

[0038] After confirming that it is in a state where it can start the verification process, the processor 150 will confirm whether it is connected to a target object (step S310). When the processor 150 has not yet connected to the target object, the processor will continue to perform the confirmation process of whether it is connected to the target object; conversely, when it is found that it has been connected to the target object, the processor 150 can first try to read the data obtained by the data input device 22 under the premise that the reading input device 22 exists (step S312), and start to execute the existing verification software to verify the target object 180 using the existing verification software when the reading operation is completed, the corresponding data does not exist or there is no reading input device 22 (step S314). After verifying the target object 180, the processor 150 transmits the verification result as part of the report information INF1 to the data collector 100 through the previously established TCP / IP connection (step S316). It should be noted that the report information INF1 (or the report information INF2, INF3, INF4, etc.) includes but is not limited to the verification result mentioned here. In other embodiments, the content of the report information INF1 may include the following items: the connection time of the target object, the verification start time of the target object, the verification end time of the target object, whether the verification of the target object is successful, the verification process record of the target object, etc.

[0039] After providing the verification results to the data collector 100, the processor 150 can control related devices (such as a robotic arm) to remove the target object 180 (step S318). Next, the processor 150 can also decide whether it needs to participate in the operation of the software verification system 10 according to a preset decision mechanism or according to external input (step S320). When it is necessary to participate in the operation of the software verification system 10, the process will return to step S310 to repeat the above steps; conversely, when it is not necessary to participate in the operation of the software verification system 10, the processor 150 can notify the data collector 100 to disconnect the previously established TCP / IP connection by the data collector 100 (step S322).

[0040] In summary, the distributed software verification system provided by the present invention uses multiple independently running processors to respectively execute verification software to verify a target object, so the design of the verification software does not need to consider complex competition conditions. Moreover, the distributed software verification system provided by the present invention only needs to directly change the number of processors or directly replace the verification software in the corresponding processor to adapt to the situation where the number of verifications or the verification objects change. In summary, this distributed software verification system has a system architecture that is easy to design and adjust, so it can reduce the manpower and time required to set up the verification system.

Claims

1. A decentralized software verification system, characterized in that: include: A plurality of processors, each of which does not need to receive external instructions during the process of running a verification software to verify the state of a corresponding target object; a switch including a plurality of first port connections and a second port connection, the second port connection being electrically coupled to the first port connection, and each of the first port connection being adapted to be electrically coupled to one of the processors; as well as a data collector, electrically coupled to the second terminal connection port, Each of the processors runs the verification software to verify the status of the corresponding target object and generates a report information according to the verification process. The report information is transmitted to the data collector through one of the first end connection ports and the second end connection port. The objects verified by different ones of the processors are different target objects.

2. The software verification system according to claim 1, further comprising: A data input device is electrically coupled to a selected processor among the processors, and the data input device provides input data to the selected processor so that the selected processor can learn the information of the verified target object.

3. The software verification system according to claim 2, wherein: The data input device includes a photography module.

4. The software verification system according to claim 3, wherein: The photographic module includes one of the following elements: a one-dimensional barcode reader, a two-dimensional barcode reader, and an image recognizer capable of performing image or text recognition.

5. The software verification system according to claim 4, wherein: The two-dimensional barcode reader includes a fast response matrix code reader.

6. The software verification system according to claim 1, wherein: A channel for transmitting the report information is established between the processor and the data collector using the TCP / IP protocol architecture.

7. The software verification system according to claim 6, wherein: The data collector establishes a channel for transmitting the report information with the processor in a manner of automatically distributing a network address.

8. The software verification system according to claim 1, wherein: Any of the processors establishes a connection to the data collector before verifying the status of the corresponding target object, and determines whether the verification software being run is the latest version according to the content of the data collector.

9. The software verification system according to claim 8, wherein: When the verification software being run is not the latest version, any of the processors running the verification software obtains the latest version of the verification software from the data collector to replace the verification software originally being run.

Citation Information

Patent Citations

  • Test system and method

    TW201907174A

  • Parallel testing of magnetic recording sliders

    US20190392869A1

  • Testing System, and a Method and Computer Program For Testing A System Management Program

    US20080244532A1

  • Validating the configuration of distributed systems

    US20120284690A1

  • System for Tracking Physical Objects

    US20170280290A1