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;
identifying a request-sensitive attribute of the response; and
generating a virtual service model comprising transaction information describing the detected particular transaction and the request-sensitive attribute, wherein the virtual service model models the particular software service based on the transaction information.
2 . The method of claim 1 , wherein the transaction information describes a plurality of transactions involving the particular software service.
3 . The method of claim 1 , wherein the request-sensitive attribute comprises a string value in the response.
4 . The method of claim 1 , wherein a value of the request-sensitive attribute comprises a value of a first attribute of the response dependent on a value of a first attribute of the request.
5 . The method of claim 4 , wherein the value of the first attribute of the response is to comprise the value of the first attribute of the request.
6 . The method of claim 5 , wherein the first request attribute is one of a plurality of attributes of the request and the request-sensitive attribute is independent of values of a second attribute in the plurality of attributes of the request.
7 . The method of claim 4 , wherein the value of the first attribute of the response is different from the value of the first attribute of the request.
8 . 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 request-sensitive attribute.
9 . The method of claim 8 , wherein the modeled response is generated to comprise a modeled response attribute value dependent on a value of an attribute of the request received in the virtualized service environment.
10 . The method of claim 9 , wherein the particular transaction is of a particular transaction type and modeled responses to requests in the virtualized service environment corresponding to transactions of the particular transaction type are generated to comprise respective modeled response attribute values dependent on attribute values of the corresponding request.
11 . The method of claim 1 , wherein identifying the request-sensitive attribute comprises determining that a particular attribute of the response is request-sensitive.
12 . The method of claim 11 , wherein determining that the particular attribute of the response is request-sensitive comprises:
comparing attributes in the request with the particular attribute of the response; and
identifying a potential dependency between a first attribute of the request with the particular attribute of the response.
13 . The method of claim 12 , wherein identifying the potential dependency comprises identifying that a value of the first attribute of the response substantially matches a value of the first attribute of the request.
14 . The method of claim 11 , wherein the particular transaction is of a first transaction type and determining that the particular attribute of the response is request-sensitive comprises identifying that another transaction of the first transaction type comprises a substantially similarly request-sensitive attribute.
15 . 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 identify a request-sensitive attribute of the response; and
computer readable program code configured to generate a virtual service model comprising transaction information describing the detected particular transaction, wherein the virtual service model is adapted to model a response of the particular software service based on the request-sensitive attribute.
16 . A system comprising:
a processor device;
a memory element; and
service model generator adapted to:
monitor transactions involving a particular software service;
detect, during the monitoring, a request of the particular software service;
detect, during the monitoring, a response by the particular software service to the request;
identify a request-sensitive attribute of the response; and
generate a virtual service model comprising transaction information describing the detected particular transaction and the request-sensitive attribute, wherein the virtual service model models the particular software service based on the detected request, detected response, and request-sensitive attribute.
17 . The system of claim 16 , wherein the request-sensitive attribute defines a value of a particular response attribute of the response dependent on a value of a request attribute of the request.
18 . The system of claim 18 , wherein a particular observed transaction involving the particular software service comprises the detected request and the detected response and the system further comprises a request processing module adapted to:
receive, from a requesting software component, a request of the particular software service;
identify, from the virtual service model, that the particular request corresponds to the particular observed transaction;
return to the requesting software component a particular response to the received request, the particular response generated from the virtual service model and applying the request-sensitive attribute
19 . A method comprising:
receiving, from a requesting software component, a request of a particular service;
identifying a virtual service model corresponding to the particular service, the virtual service model modeling the particular service and a request-sensitive response of a particular transaction of the particular service; and
using a processor device to return to the requesting software component a particular response to the received request generated from the virtual service model.
20 . The method of claim 19 , wherein returning the particular response comprises:
determining that the received request corresponds to the particular transaction;
identifying a particular attribute of the received request;
identifying a request-sensitive response attribute defined in the virtual service model for the particular transaction; and
generating the particular response, wherein the particular response comprises a particular response attribute generated based on the identified request-sensitive response attribute and the particular attribute of the received request.
21 . The method of claim 20 , wherein the request-sensitive response attribute adopts a value of the particular attribute of the received request and the particular response attribute comprises the value of the particular attribute of the received request.
22 . The method of claim 19 , wherein the request is received in a virtual service environment comprising one of a development, testing, load testing, integration testing, and training environment.
23 . 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;
identify a virtual service model corresponding to the particular service, the virtual service model modeling the particular service and a time-sensitive response of a particular transaction of the particular service; and
return to the requesting software component a particular response to the received request generated from the virtual service model.