Patent ID: 7370317

Claim:
In a code generation computing system that includes one or more processors to execute computer-executable instructions in system memory, a method for automatically generating executable code configured to simulate a message exchange pattern, the method comprising the following: an act of accessing a message exchange pattern definition for the message exchange pattern, the message exchange pattern definition defining which of a first message exchange pattern application and a second message exchange pattern application are to send which message at any given point in the message exchange pattern; a plurality of states of the message exchange pattern; one or more state transitions between the plurality of states; and for each of the plurality of states: valid message types for the state; one or more valid message types that may be transmitted when the message exchange pattern is in the state; one or more valid message types that may be received when the message exchange pattern is in the state; and an indication of which state transitions should occur given a certain valid message type; an act of automatically generating executable message exchange pattern simulation code, based on the message exchange pattern definition, for simulating the state transitions of the message exchange pattern, the generated executable message exchange pattern simulation code representing a stand alone computer program that can be executed at a computer system to test the message exchange pattern definition without communicating with any message exchange pattern applications, including: for each of the plurality of states that permits valid messages to be transmitted: automatically generating executable code to simulate transmission of a valid message between the first message exchange pattern application and second message exchange pattern application; and automatically generating executable code to simulate a corresponding state transition in response to the simulated transmission of the valid transmission message; and for each of the plurality of states that permits valid messages to be received: automatically generating executable code to simulate reception of a valid message between the first message exchange pattern application and second message exchange pattern application; and automatically generating executable code to simulate a corresponding state transition in response to the simulated reception of the valid message.