SERVICE MODELING AND VIRTUALIZATION
The systems and methods described herein can be used to provide virtual service environments. In one embodiment, a virtual service model is generated by detecting one or more transactions, each of which includes a request sent from a requester to a software service and a response sent from the software service to the requester; storing information describing the detected transactions in a virtual service model, where the information describing each transaction includes information identifying a command included in the request and information identifying a response attribute included in the response; and generating information describing an unknown transaction, where the information describing the unknown transaction includes information identifying a first command and information identifying a first response attribute. The first command and the first response attribute are copies of a corresponding command and a corresponding response attribute associated with a corresponding one of the detected transactions.
1 . A method comprising:
identifying a first transaction comprising a first request of a particular software service and a first response to the first request from the particular software service;
identifying a second transaction comprising a second request of the particular software service and a second response to the second request from the particular software service;
determining that the second transaction is a child of the first transaction in a particular conversation involving the particular software service; and
generating, using a processor device, a virtual service model of the particular software service modeling at least the particular conversation.
2 . The method of claim 1 , further comprising:
monitoring transactions involving the particular software service; and
detecting, during the monitoring, the first and second transactions, wherein the first and second requests are observed requests and the first and second responses are observed responses.
3 . The method of claim 1 , wherein the particular conversation defines a set of two or more related stateful transactions involving the particular software service.
4 . The method of claim 1 , further comprising determining that the first transaction is an instance of a starter transaction of the particular conversation.
5 . The method of claim 4 , wherein the first transaction is of a first transaction type and the method further comprises defining the starter transaction in the virtual service model as an unknown transaction of the first transaction type.
6 . The method of claim 4 , wherein the first transaction is determined to be an instance of the starter transaction based on a user input indicating that the first transaction corresponds with the start of the particular conversation.
7 . The method of claim 1 , further comprising determining that the first and second transactions employ token statefulness.
8 . The method of claim 1 , further comprising determining that the first and second transactions employ instance statefulness
9 . The method of claim 1 , wherein the virtual service model comprises conversation information describing the particular conversation and transaction information describing the first and second transactions.
10 . The method of claim 9 , wherein the virtual service model is used to generate a modeled response of the particular software service to a received request in a virtualized service environment based on the conversation information and transaction information of the virtual service model.
11 . The method of claim 10 , wherein the virtual service environment comprises one of a development, testing, load testing, integration testing, and training environment.
12 . The method of claim 1 , wherein the particular conversation is one of a plurality of conversations of the particular software service modeled by the virtual service model.
13 . The method of claim 1 , further comprising determining that the second transaction is a reset transaction causing flow of the particular conversation to return to a transaction in the conversation prior to the second transaction.
14 . The method of claim 1 , further comprising determining that the second transaction is a goodbye transaction causing the particular conversation to end.
15 . The method of claim 1 , further comprising:
identifying a second conversation involving the particular software service; and
merging the second conversation with the particular conversation.
16 . The method of claim 15 , further comprising determining that the second conversation and the particular conversation share a common starter transaction, wherein the second conversation and particular conversation are merged based on the determination that the second conversation and the particular conversation share the common starter transaction.
17 . The method of claim 15 , further comprising determining structural similarity between the particular conversation and second conversation, wherein the second conversation and particular conversation are merged based on the determination of structural similarity between the particular conversation and second conversation.
18 . The method of claim 15 , wherein merging the second conversation with the particular conversation comprises defining a conversation tree comprising a first branch comprising at least a portion of the particular conversation and a second branch comprising at least a portion of the second conversation.
19 . A computer program product comprising a computer readable storage medium comprising computer readable program code embodied therewith, the computer readable program code comprising:
computer readable program code configured to identify a first transaction comprising a first observed request of the particular software service and an observed first response to the first request from the particular software service;
computer readable program code configured to identify a second transaction comprising a second observed request of the particular software service and an observed second response to the second request from the particular software service;
computer readable program code configured to determine that the second transaction is a child of the first transaction in a particular conversation involving the particular software service; and
computer readable program code configured to generate a virtual service model of the particular software service modeling at least the particular conversation.
20 . A system comprising:
a processor;
a memory element; and
a service model generator adapted to:
monitor transactions involving a particular software service;
detect, during the monitoring, a first transaction comprising a first request of the particular software service and a first response to the first request from the particular software service;
identify a second transaction comprising a second request of the particular software service and a second response to the second request from the particular software service;
determine that the first and second transactions are stateful transactions in a particular conversation involving the particular software service; and
generate a virtual service model of the particular software service modeling at least the particular conversation.
21 . The system of claim 20 , wherein the virtual service model comprises traffic pattern data, conversation pattern data, transaction pattern data, request pattern data, and response pattern data.
22 . The system of claim 21 , wherein the transaction pattern data comprises request data, response data, parent transaction data, child transaction data, and match tolerance data.
23 . The system of claim 20 , wherein the conversation comprises a starter transaction and the system further comprises a request processing module adapted to:
receive, from a requesting software component, a particular request of the particular software service;
identify that the particular request corresponds to a starter request of the starter transaction; and
return, to the requesting software component, a modeled response based on response patterns of the particular conversation modeled by the virtual service model.