Patent ID: 7975059

Claim:
A method for creating a protocol analyzer, comprising: storing, in a memory communicatively coupled to a processor, computer-executable instructions for performing the method for creating the protocol analyzer; executing the instructions on the processor; according to the instructions being executed: providing an analysis engine, the analysis engine including a plurality of objects adaptable to modeling response of an application to messages presented in a protocol, the analysis engine being is configured to allow speculative execution by a handler, which: is invoked to begin processing a partial message when the partial message implicates the handler such that processing the partial message commences without waiting for completion of the partial message; and is suspended when the handler references a portion of the partial message that is not yet available to the handler; and receiving a series of messages, presented according to a protocol and in a data stream, to be at least one of supplied to and received from the application; applying a specification program to the analysis engine, the specification program including instructions to adapt objects of the analysis engine to model a response of the application to the series of messages in the data stream; the plurality of objects including a state machine object comprising: a state machine timer; and an ambiguous state responsive to the state machine timer and at least one outgoing message from the application, such that the analysis engine transitions to: the ambiguous state when the state machine timer reaches a time within a synchronization margin of an application timeout interval; a timeout state when the state machine timer reaches a time equal to the synchronization margin beyond the application timeout interval; and a non-timeout state when the at least one outgoing message indicates the application has not reached the application timeout interval before the state machine timer reaches a time equal to the synchronization margin beyond the application timeout interval.