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:
monitoring, using a processor device, transactions involving a particular software service;
detecting, during the monitoring, a particular transaction comprising an observed request of the particular software service and an observed response to the request from the particular software service;
receiving a user-specified input relating to transactions involving the particular software service; and
generating a virtual service model based on the received user-specified input and comprising transaction information describing the detected particular transaction, wherein the virtual service model models the particular software service.
2 . The method of claim 1 , 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 transaction information of the virtual service model.
3 . The method of claim 2 , wherein generating the modeled response comprises matching the received request in the virtualized service environment to the particular transaction described by the transaction information, and requests received in the virtualized service environment are matched to the particular transaction based on matching criteria of the transaction information.
4 . The method of claim 3 , wherein the transaction information describes a request attribute of the observed request and the matching criteria defines a matching setting for the request attribute.
5 . The method of claim 4 , further comprising modifying the matching setting for the request attribute based on the received user-specified input.
6 . The method of claim 4 , further comprising modifying a value of the request attribute based on the received user-specified input.
7 . The method of claim 3 , wherein generating the modeled response comprises returning at least a portion of the observed response of the particular transaction based on the matching.
8 . The method of claim 2 , wherein the received request in the virtualized service environment is not forwarded to the particular software service.
9 . The method of claim 2 , wherein the virtual service environment comprises one of a development, testing, load testing, integration testing, and training environment.
10 . The method of claim 2 , wherein the transaction information describes a response attribute of the observed response.
11 . The method of claim 10 , further comprising modifying the response attribute based on the received user-specified input.
12 . The method of claim 2 , wherein the user-specified input defines responses to be used in response to unknown requests of the particular software service received in the virtualized service environment.
13 . The method of claim 1 , wherein the user-specified input is received after detection of the particular transaction.
14 . The method of claim 1 , wherein the user-specified input defines a user-defined transaction of the particular software service.
15 . The method of claim 14 , wherein the virtual service model comprises transaction information for a plurality of transactions involving the particular software service comprising the particular transaction and the user-defined transaction.
16 . The method of claim 1 , wherein the user-specified input comprises a record of another observed transaction involving the particular software service, the record defining a second observed request of the particular software service and a second observed response from the particular software service.
17 . The method of claim 16 , wherein the record defines a plurality of other observed transactions involving the particular software service and the virtual service model comprises transaction information describing each of the plurality of other observed transactions.
18 . 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 monitor transactions involving a particular software service;
computer readable program code configured to detect, during the monitoring, a particular transaction comprising an observed request of the particular software service and an observed response to the request from the particular software service;
computer readable program code configured to receive a user-specified input relating to transactions involving the particular software service; and
computer readable program code configured to generate a virtual service model based on the received user-specified input and comprising transaction information describing the detected particular transaction, wherein the virtual service model models the particular software service.
19 . A system comprising:
a processor device;
a memory element; and
a service model generator adapted to:
capture a request of a particular software service by a particular software component in a particular transaction;
capture a response to the request from the particular software service in the particular transaction;
receive a user-specified input relating to transactions involving the particular software service; and
generate a virtual service model based on the received user-specified input and comprising transaction information describing the captured request and captured response of the particular transaction, wherein the virtual service model models the particular software service.
20 . The system of claim 19 , wherein the transaction information describes a plurality of transactions involving the particular software service.
21 . The system of claim 19 , wherein the service model generator is further adapted to provide a graphical user interface, and the user-specified input is received through the graphical user interface.
22 . The system of claim 19 , further comprising a request processing module adapted to:
receive, from a requesting software component, a second request of the particular software service;
identify, from the virtual service model, the particular transaction; and
return, to the requesting software component, a modeled response based on the particular transaction identified from the virtual service model.