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:
receiving, from a requesting software component, a request of a particular service, the request comprising a command;
identifying a virtual service model corresponding to the particular service, the virtual service model describing a particular conversation comprising a plurality of related stateful transactions involving the particular service, wherein the plurality of stateful transactions comprise an observed transaction; and
using a processor device to return to the requesting software component a response, to the received request, generated from the virtual service model.
2 . The method of claim 1 , further comprising determining whether an instance of the particular conversation is active at the receiving of the request.
3 . The method of claim 2 , wherein no instances of the particular conversation are determined to be active at the receiving of the request, the method further comprising determining whether the request corresponds to a starter transaction of the particular conversation.
4 . The method of claim 3 , wherein determining whether the request corresponds to a starter transaction of the particular conversation comprises:
identifying that the starter transaction is an unknown transaction of a first transaction type; and
determining that the request corresponds to the first transaction type based on the command of the request.
5 . The method of claim 3 , wherein the request is determined to correspond to the starter transaction and the response is a modeled response of the starter transaction.
6 . The method of claim 2 , wherein a particular instance of the particular conversation is determined to be active at the at the receiving of the request, the method further comprising:
determining that the request corresponds to a goodbye transaction of the particular conversation; and
ending the particular instance of the particular conversation based on the determination that the request corresponds to a goodbye transaction of the particular conversation.
7 . The method of claim 2 , wherein a particular instance of the particular conversation is determined to be active at the at the receiving of the request, the method further comprising determining that the request corresponds to a reset transaction of the particular conversation, wherein the reset transaction causes flow of the particular conversation to return to another transaction in the conversation prior to the reset transaction.
8 . The method of claim 2 , wherein a particular instance of the particular conversation is determined to be active at the receiving of the request, the method further comprising determining that the request corresponds to requests of a child transaction of a particular transaction of the particular conversation.
9 . The method of claim 8 , wherein the response comprises a modeled response of the child transaction.
10 . The method of claim 1 , wherein the request and response comprise a particular transaction of the particular conversation, the method further comprising:
receiving another request of the particular service, the request comprising a second command;
determining that the other request corresponds to a second transaction of the particular conversation, wherein the second transaction is identified as a child of the particular transaction in the virtual service model.
11 . The method of claim 1 , wherein the virtual service model identifies a plurality of possible children transactions of the particular transaction.
12 . The method of claim 11 , further comprising determining that the particular and second transactions employ token statefulness.
13 . The method of claim 11 , further comprising determining that the particular and second transactions employ instance statefulness
14 . 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.
15 . The method of claim 1 , wherein the request comprises a particular request attribute and the response is based on the request attribute.
16 . The method of claim 1 , wherein the request is received during a test involving the requesting software component.
17 . The method of claim 1 , wherein the request is received during a training session involving the requesting software component.
18 . The method of claim 1 , wherein the virtual service model comprises a record for each of the plurality of stateful transactions and conversation information describing the particular 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 receive, from a requesting software component, a request of a particular service, the request comprising a command;
computer readable program code configured to identify a virtual service model corresponding to the particular service, the virtual service model based on a particular conversation comprising a plurality of related stateful transactions involving the particular service, wherein the plurality of stateful transactions comprise an observed transaction; and
computer readable program code configured to return to the requesting software component a response, to the received request, generated from the virtual service model.
20 . A system comprising:
a processor;
a memory element; and
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 particular transaction in a particular conversation defined in a particular virtual service model, the particular conversation comprising a plurality of related stateful transactions involving the particular service; and
return, to the requesting software component, a modeled response to the particular request based on response patterns of the particular conversation modeled by the virtual service model.
21 . The system of claim 20 , further comprising a set of virtual service models comprising the particular virtual service model.
22 . The system of claim 20 , further comprising a service model generator adapted to:
monitor transactions involving the particular software service;
detect, during the monitoring, a plurality of transactions involving the particular software service;
identify, for each of the plurality of transactions, a respective request of the particular software service and a respective response to the respective request by the particular software service;
determine that the plurality of transactions are stateful transactions in conversations involving the particular software service; and
generate virtual service models modeling the conversations.