# US 2017/0286281 A1 · Transactional boundaries for virtualization within a software system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0286281 A1
- Document ID: US20170286281A1
- Status: Published application
- Kind: A1
- Application number: 15/085,971
- Filed: 2016-03-30
- Published: 2017-10-05
- Earliest claimed: 2016-03-30
- Assignees: CA, Inc.
- Applicants: CA, Inc.
- Inventors: Jean David Dahan
- Web page: https://patentgrep.com/patent/US20170286281A1

## CPC

- G06F 11/3696: {Methods or tools to render software testable}
- G06F 11/3608: {using formal methods, e.g. model checking, abstract interpretation (theorem proving G06N5/013)}
- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Transaction data is received identifying characteristics of a particular transaction involving the first software component and a second software component as observed by an agent during operation of the system. The particular transaction is contemporaneous with another transaction involving software components in the system. It is determined, from the transaction data, that the particular transaction falls within a defined transaction boundary for the system and the other transaction falls outside the transaction boundary. A virtual service is instantiated for use in the particular transaction that simulates responses of a particular software component of the system. Another software component of the system interacts with the virtual service in the particular transaction based on the particular transaction falling within the transaction boundary, and the other software component interacts with the particular software component in the other transaction based on the other transaction falling outside the transaction boundary.

## Claims

### Claim 1

A method comprising:
receiving transaction data from a software-based agent instrumented on a first software component in a system comprising a plurality of software components, wherein the transaction data identifies characteristics of a particular transaction involving the first software component and a second software component in the plurality of software components as observed by the agent during operation of the system, and the particular transaction is contemporaneous with another transaction involving software components in the system;
using a data processing apparatus to determine, from the transaction data, that the particular transaction falls within a defined transaction boundary for the system, wherein transactions meeting a set of conditions fall within the transaction boundary, and the other transaction falls outside the transaction boundary; and
instantiating a virtual service for use in the particular transaction, wherein the virtual service simulates responses of a particular one of the plurality of software components, another one of the plurality of software components is to interact with the virtual service in the particular transaction based on the particular transaction falling within the transaction boundary, and the other software component interacts with the particular software component in the other transaction based on the other transaction falling outside the transaction boundary.

### Claim 2 (depends on 1)

The method of claim 1, wherein the other software component comprises the first software component and the particular software component comprises the second software component.

### Claim 3 (depends on 1)

The method of claim 1, wherein the characteristics comprise an indication of a session involving a particular user and the transaction boundary defines transactions within sessions involving the particular user.

### Claim 4 (depends on 3)

The method of claim 3, wherein transaction boundary defines transactions within sessions of any one of a particular group of users comprising the particular user.

### Claim 5 (depends on 3)

The method of claim 3, wherein the first software component receives a session identifier corresponding to the particular user and the second software component does not receive the session identifier.

### Claim 6 (depends on 3)

The method of claim 3, wherein the particular transaction comprises a plurality of transaction fragments, the transaction data comprises first transaction data describing a first one of the plurality of transaction fragments, and the method further comprises:
receiving second transaction data from another agent, wherein the second transaction data identifies characteristics of a second one of the plurality of transaction fragments;
determining, from the characteristics of the second transaction fragment, that the first and second transaction fragments are fragments of the particular transaction; and
determining that the second transaction fragment is in the session.

### Claim 7 (depends on 6)

The method of claim 6, wherein the second transaction fragment involves the second software component and a third one of the plurality of software components.

### Claim 8 (depends on 7)

The method of claim 7, wherein the particular software component comprises the third software component.

### Claim 9 (depends on 3)

The method of claim 3, wherein the particular user is one of a plurality of users accessing the system.

### Claim 10 (depends on 1)

The method of claim 1, wherein the characteristics comprise a particular value being included in an original request of the transaction.

### Claim 11 (depends on 1)

The method of claim 1, wherein the characteristics comprise the transaction being invoked by a particular background process.

### Claim 12 (depends on 1)

The method of claim 1, wherein the characteristics comprise size of a particular request in the transaction being in excess of a threshold.

### Claim 13 (depends on 1)

The method of claim 1, wherein the particular transaction and the other transaction are transactions of a particular type.

### Claim 14 (depends on 13)

The method of claim 13, wherein the other software component is to send a request to the particular software component in transactions of the particular type.

### Claim 15 (depends on 14)

The method of claim 14, wherein the other software component sends the request to the virtual service in the particular transaction and the virtual service generates a simulated response of the other software component in the particular transaction responsive to the request.

### Claim 16 (depends on 15)

The method of claim 15, wherein the virtual service is instantiated from a virtual service model, the virtual service model is based at least in part on automated monitoring of operation of the particular software component, the virtual service model further models a modification to the particular software component, and the simulated response is different from a real response of the particular software component to the request.

### Claim 17 (depends on 1)

The method of claim 1, wherein instantiating the virtual service comprises:
identifying a virtual service model corresponding to the particular software components, wherein the virtual service model models responses of the particular software component to requests of the particular software component;
launching the virtual service in a virtual service environment comprising a virtual machine, wherein a request by the other software component to the particular software component in the particular transaction is to be redirected to the virtual service, and the virtual service accesses the virtual service model to generate a simulated response to the request and sends the simulated response to the other software component.

### Claim 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 receive transaction data from a software-based agent instrumented on a first software component in a system comprising a plurality of software components, wherein the transaction data identifies characteristics of a particular transaction involving the first software component and a second software component in the plurality of software components as observed by the agent during operation of the system, and the particular transaction is contemporaneous with another transaction involving software components in the system;
computer readable program code configured to determine, from the transaction data, that the particular transaction falls within a defined transaction boundary for the system, wherein transactions meeting a set of conditions fall within the transaction boundary, and the other transaction falls outside the transaction boundary; and
computer readable program code configured to instantiating a virtual service for use in the particular transaction, wherein the virtual service simulates responses of a particular one of the plurality of software components, another one of the plurality of software components is to send a request to the virtual service in the particular transaction based on the particular transaction falling within the transaction boundary, and the other software component is to send a request to the particular software component in the other transaction based on the other transaction falling outside the transaction boundary.

### Claim 19

A system comprising:
a data processor;
a memory;
a virtualization system to host a virtual service, operable to simulate responses of a particular one of a plurality of software components in a system based on a virtual service model corresponding to the particular software component; and
an agent manager to:
receive transaction data from a software-based agent instrumented on a first software component in the system, wherein the transaction data identifies characteristics of a particular transaction involving at least a portion of the plurality of software components as observed by the agent during operation of the system, and the particular transaction is contemporaneous with another transaction involving the portion of the plurality of software components;
determine, from the transaction data, that the particular transaction falls within a defined transaction boundary for the system, wherein transactions meeting a set of conditions fall within the transaction boundary, and the other transaction falls outside the transaction boundary; and
cause another one of the plurality of software components to interact with the virtual service in the particular transaction based on the particular transaction falling within the transaction boundary, wherein the other software component interacts with the particular software component in the other transaction based on the other transaction falling outside the transaction boundary.

### Claim 20 (depends on 19)

The system of claim 19, further comprising a plurality of agents instrumented on the plurality of software components, wherein the plurality of agents comprises the agent.
