The present invention generally relates to an execution of a node operation within a domain. The present invention specifically relates to simulation testing of software/firmware for implementing an execution of the node operation.
A distributed data processing domain may consist of a system of multiple data processing nodes having components that communicate across physically separate boundaries using distributed queuing. For example, each data processing node may include an interface having a request message queue and a reply message queue that are respectively used by one of data processing nodes to request an execution of a node operation by one of the remaining data processing nodes and to receive reply messages from that data processing node indicating the outcome of the execution of the node operation.
One current simulation testing technique of a node operation provides users with a method for creating scenarios necessary for testing code for implementing the node operation. However, this current simulation testing technique has many drawbacks when applied to a distributed data processing domain.
First, the current simulation testing technique is not very efficient, because users do not have the ability to easily create scenarios necessary for testing. Consider, for example, a scenario where a mount is attempted to a drive that is already mounted. In order to create this scenario and generate the desired response using the existing simulation testing technique, a user must write a test case that mounts a drive and then attempts to mount the same drive again. This technique works, but as testing scenarios become more complex, it becomes more difficult for users to write the appropriate sequence of events in a test case necessary to generate the desired response from the simulation test. Clearly, there is a need for a better solution that entails allowing users to bypass the need for creating elaborate and complex test cases to generate a desired message from the simulation test.
In a distributed data processing domain including a plurality of data processing nodes, the present invention provides a new and unique simulation data processing node that is operated as a participant in a simulation testing of a node operation.
One form of the present invention is a method of operating the simulation data processing node involving a determination by the simulation data processing node of a simulation job and a simulation command responsive to the simulation testing of the node operation, wherein the simulation job is indicative of one or more actions to be performed by the simulation data processing node as a function of the simulation testing of the node operation and wherein the simulation command is indicative of a message format for a simulated message representative of the simulation job. The method further involves a building by the simulation data processing node of the simulated message based on the simulation job and the simulation command.
A second form of the present invention is the simulation data processing node comprising a processor and a memory operable with the processor for executing instructions for participating in the simulation testing of the node operation. The instructions are executed for a determination by the simulation data processing node of a simulation job and a simulation command responsive to the simulation testing of the node operation, wherein the simulation job is indicative of one or more actions to be performed by the simulation data processing node as a function of the simulation testing of the node operation and wherein the simulation command is indicative of a message format for a simulated message representative of the simulation job. The instructions are further executed for a building by the simulation data processing node of the simulated message based on the simulation job and the simulation command.
A third form of the present invention is the simulation data processing node comprising a simulation job queue, a simulation command queue and a simulated message generator. The simulation job queue includes a simulation job indicative of one or more actions to be performed by the simulated message generator as a function of the simulation testing of the node operation. The simulation command queue includes a simulation command indicative of a message format for a simulated message representative of the simulation job. The simulated message generator is operable to determine the simulation job and simulation command as being responsive to the simulation testing of the node operation and to build the simulated message based on the simulation job and the simulation command.
The aforementioned forms and additional forms as wells as objects and advantages of the present invention will become further apparent from the following detailed description of the various embodiments of the present invention read in conjunction with the accompanying drawings. The detailed description and drawings are merely illustrative of the present invention rather than limiting, the scope of the present invention being defined by the appended claims and equivalents thereof.
A simulation testing of a node operation within domain 20 is in the form of a requester simulation testing mode or a target simulation testing mode. In the requester simulation testing mode, one of the data processing nodes 40, 50, 70 and 80 serves as a simulation data processing node for simulating a request for an execution of a node operation by one of the remaining data processing node 40, 50, 70 and 80 serving as a target data processing node. In the target simulation testing mode, one of the data processing nodes 40, 50, 70 and 80 serves as a simulation data processing node for simulating an execution of a node operation as requested by of the remaining data processing node 40, 50, 70 and 80 serving as a requester data processing node. Please note that the terms “simulation”, “requester” and “target” as used herein in conjunction with the term “data processing node” are only intended to facilitate an identification of the operational role of each data processing node during a simulation testing of a node operation and therefore should not be used to unduly limit or restrict the definition of data processing node as known in the art.
For selectively participating as a simulation data processing node during a simulation testing of a node operation, each memory 42, 52, 72 and 82 includes a respective simulation job queue 43, 53, 73 and 83 for storing one or more simulation jobs where each simulation job is indicative of one or more actions to be performed by the simulation data processing node during the simulation testing of a particular node operation. In one embodiment, as illustrated in
Specifically, a simulation job 91 associated with the requester simulation testing mode is indicative of one or more request actions to be performed by the corresponding simulation data processing node in a simulation of a request for an execution of the node operation by a target data processing node. Conversely, a simulation job 91 associated with the target simulation testing mode is indicative of one or more reply actions to be performed by the corresponding simulation data processing node in a simulation of an execution of the node operation as requested by a target data processing node.
For selectively participating as a simulation data processing node during a simulation testing of a node operation, each memory 42, 52, 72 and 82 further includes a respective simulation command queue 44, 54, 74 and 84 for storing one or more simulation commands where each simulation command is indicative of a message format for a simulated message representative of one or more of simulation jobs. In one embodiment, as illustrated in
Specifically, a simulation command 101 associated with the requester simulation testing mode is indicative of a request message format for a simulated request message representative of one or more of simulation jobs 91 associated with the requester simulation testing mode. Conversely, a simulation command 101 associated with the target simulation testing mode is indicative of a reply message format for a simulated reply message representative of one or more of simulation jobs 91 associated with the target simulation testing mode.
Referring to
Upon a completion of stage S112, the simulation data processing node proceeds to a stage S114 of flowchart 110 to build a simulated message based on the simulation job and the simulation command determined during stage S112. In the requester simulation testing mode (“RSTM”) as shown in stage S114, the simulation data processing node builds a simulated request message SRQM based on the simulation request job SRQJ and the simulation request command SRQC determined during stage S112. In the target simulation testing mode as shown in stage S112, the simulation data processing node builds a simulated reply message SRPM based on the simulation reply job SRPJ and the simulation reply command SRPJ determined during stage S112.
In practice, the present invention does not impose any limitations or restrictions of a structural configuration of data processing nodes for implementing the simulated message generation method of the present invention as represented by flowchart 110 (
For supporting the interfacing of messages between simulation data processing node 120 and another data processing node, simulation data processing node 120 further employs a node messenger software/firmware module (“NM”) 126, a simulated request message queue (“SRQMQ”) 127 and a simulated reply message queue (“SRPMQ”) 128.
To facilitate an understanding of the requester simulation testing mode method of the present invention, the subsequent description of flowchart 140 is based on a concurrent implementation by a target data processing node 130 shown in
Referring to
A stage S144 of flowchart 140 encompasses simulated message generator 122 building a simulated request message SRQM based on simulation request job SRQJ and a simulation request command SRQC.
A stage S146 of flowchart 140 encompasses simulated message generator 122 calling node messenger 126 to place simulated request message SRQM on simulated request message queue 127 and a stage S148 of flowchart 140 encompasses node messenger 126 placing simulated request message SRQM on simulated request message queue 127 as shown in
A stage S162 of flowchart 160 encompasses a node messenger 132 pulling simulated request message SRQM from simulated request message queue 127 in accordance with a polling scheme represented by a dashed portion of the arrow leading into stage S162.
A stage S164 of flowchart 160 encompasses node messenger 132 returning simulated request message SRQM to a target process module (“TPM”) 131 whereby target process module 131 during a stage S166 of flowchart 160 executes a node operation responsive to simulated request message SRQM to thereby build a reply message RPM during a stage S168 of flowchart 160 that is indicative of an outcome of the execution of the node operation by target process module 131.
A stage S170 of flowchart 160 encompasses target process module 131 calling node messenger 132 to place reply message RPM on simulated reply message queue 128 and a stage S172 of flowchart 160 encompasses node messenger 132 placing reply message RPM on simulated request message queue 128 as shown in
A stage S150 of flowchart 140 encompasses node messenger 126 pulling reply message RPM from simulated reply message queue 128 in accordance with a polling scheme represented by a dashed portion of the arrow leading into stage S150.
A stage S152 of flowchart 140 encompasses node messenger 126 returning reply message RPM to simulated message generator 122 whereby simulated message generator 122 during a stage S154 of flowchart 150 reads simulation command queue 124 for a reply message format associated with reply message RPM to thereby verify the contents of reply message RPM during a stage S156 of flowchart 150.
Referring to
To facilitate an understanding of the target simulation testing mode method of the present invention, the subsequent description of flowchart 210 is based on a concurrent implementation by a requester data processing node 180 shown in
Referring to
A stage S194 of flowchart 190 encompasses requester process module 181 calling a node messenger 182 to place request message RQM on a request message queue 183 and a stage S196 of flowchart 190 encompasses node messenger 182 placing request message RQM on request message queue 183 as shown in
A stage S212 of flowchart 210 encompasses node messenger 126 pulling request message RQM from request message queue 183 in accordance with a polling scheme represented by a dashed portion of the arrow leading into stage S212.
A stage S214 of flowchart 210 encompasses node messenger 126 returning request message RQM to simulated message generator 122 whereby simulated message generator 122 during a stage S216 of flowchart 210 reads simulation job queue 123 and simulation command queue 124 for a simulation reply job SRPJ and a simulation reply command SRPC responsive to request message RQM as shown in
A stage S218 of flowchart 210 encompasses simulated message generator 122 building a simulated reply message SRPM based on simulation reply job SRPJ and simulation reply command SRPC.
A stage S220 of flowchart 210 encompasses simulated message generator 122 calling node messenger 126 to place simulated reply message SRPM on reply message queue 184 and a stage S222 of flowchart 210 encompasses node messenger 126 placing simulated reply message SRPM on reply message queue 184 as shown in
A stage S198 of flowchart 190 encompasses node messenger 182 pulling simulated reply message SRPM from reply message queue 184 in accordance with a polling scheme represented by a dashed portion of the arrow leading into stage S198.
A stage S200 of flowchart 190 encompasses node messenger 182 returning simulated reply message SRPM to requester process module 181 whereby requester process module 181 can process simulated reply message SRPM to thereby verify the contents of simulated reply message SRPM.
Referring to
Referring to
Still referring to
Referring to
Referring to
Furthermore, those having ordinary skill in the art of simulation testing techniques may develop other embodiments of the present invention in view of the inventive principles of the present invention described herein. Thus, the terms and expression which have been employed in the foregoing specification are used herein as terms of description and not of limitations, and there is no intention in the use of such terms and expressions of excluding equivalents of the features shown and described or portions thereof, it being recognized that the scope of the present invention is defined and limited only by the claims which follow.