# US 11,907,104 B1 · Service virtualization

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

- Number: US 11,907,104 B1
- Document ID: US11907104B1
- Status: Granted
- Kind: B1
- Application number: 17/804,418
- Filed: 2022-05-27
- Granted: 2024-02-20
- Earliest claimed: 2021-01-11
- Assignees: Wells Fargo Bank, N.A.
- Applicants: Wells Fargo Bank, N.A.
- Inventors: Saraf Uddin Talukder; Jalil Vaidya
- Web page: https://patentgrep.com/patent/US11907104B1

## CPC

- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F 9/45508: {Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation}
- G06F 9/547: {Remote procedure calls [RPC]; Web services}
- G06F 11/3688: {for test execution, e.g. scheduling of test suites}
- H04L 41/142: using statistical or mathematical methods
- H04L 43/04: Processing captured monitoring data, e.g. for logfile generation
- H04L 43/14: {using software, i.e. software packages (network security related monitoring H04L63/1408)}
- H04L 43/50: Testing arrangements
- H04L 43/55: Testing of service level quality, e.g. simulating service usage
- H04L 67/75: Indicating network or usage conditions on the user display
- G06F 11/2294: {by remote test}
- G06F 11/3414: {Workload generation, e.g. scripts, playback}
- G06F 11/3672: {Test management}
- G06F 11/3684: {for test design, e.g. generating new test cases}
- G06F 30/20: Design optimisation, verification or simulation (optimisation, verification or simulation of circuit designs G06F30/30)
- H04L 43/0805: by checking availability
- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

An application in production may communicate with one or more heterogeneous services, including requesting and receiving data from a one or more data sources. The communication between the application and the services can include complicated scenarios making facilitating end-to-end testing of the application difficult. The disclosed service virtualization solution works in two stages of ‘record and replay’ to simulate a backend service. During the recording stage, the disclosed tool intercepts the data flow between the client and the service and records the data and during the replay stage, the disclosed tool creates a proxy service that simulates the responses of service application by reading the recorded session file, allowing for the client application to be tested without having to connect to the actual service application.

## Claims

### Claim 1

A method for conducting a testing scenario, the method comprising:
during a recording phase of the testing scenario:
intercepting data transmissions between a client application and a service application, wherein each of the data transmissions includes one or more data packets;
recording the one or more data packets associated with each of the data transmissions and time interval data associated with each of the one or more data packets as a recording, wherein the time interval data defines an amount of time between each subsequent data packet in the data transmissions; and
adding one or more markers to the recording to indicate that timing of a subsequent data transmission from the client application is variable; and
during a replaying phase of the testing scenario:
creating a proxy service to simulate the service application;
facilitating the data transmissions to continue between the client application and the proxy service, wherein the proxy service mimics the service application by transmitting the one or more data packets associated with the data transmissions as recorded at time intervals that match the time interval data; and
upon encountering each of the one or more markers on the recording, pausing replaying of the data transmission until the subsequent data transmission is received from the client application.

### Claim 2 (depends on 1)

The method of claim 1, further comprising: allowing each of the data transmissions to continue when the service application is unavailable.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
storing origin data associated with each of the one or more data packets, the origin data defining whether each of the one or more data packets originated from the client application or from the service application.

### Claim 4 (depends on 3)

The method of claim 3, further comprising: mimicking the service application by selecting the data transmissions based upon the origin data associated with each of the one or more data packets.

### Claim 5 (depends on 1)

The method of claim 1, further comprising: one or more scripts that automatically pause and un-pause the replaying of the data transmissions.

### Claim 6 (depends on 1)

The method of claim 1, wherein the data transmissions between the client application and the service application use a Transmission Control Protocol (TCP) protocol.

### Claim 7 (depends on 1)

The method of claim 1, wherein the data transmissions are a serialized stream of bytes.

### Claim 8 (depends on 1)

The method of claim 1, wherein at least one of the client application and the service application is associated with a financial institution.

### Claim 9 (depends on 1)

The method of claim 1, further comprising: record the one or more data packets associated with each of the data transmissions without decrypting the one or more data packets.

### Claim 10

A system for conducting a testing scenario, the system comprising:
a processing unit; and
system memory, the system memory including instructions which, when executed by the processing unit, cause the system to:
during a recording phase of the testing scenario:
intercept data transmissions between a client application and a service application, wherein each of the data transmissions includes one or more data packets; and
record the one or more data packets associated with each of the data transmissions and time interval data associated with each of the one or more data packets as a recording, wherein the time interval data defines an amount of time between each subsequent data packet in the data transmissions;
add one more markers to the recording to indicate that timing of a subsequent data transmission from the client application is variable; and
during a replaying phase of the testing scenario:
create a proxy service to simulate the service application;
facilitate the data transmissions to continue between the client application and the proxy service, wherein the proxy service mimics the service application by transmitting the one or more data packets associated with the data transmissions as recorded at time intervals that match the time interval data, and
upon encountering each of the one or more markers on the recording, pause the replaying of the data transmission until the subsequent data transmission is received from the client application.

### Claim 11 (depends on 10)

The system of claim 10, wherein the instructions, when executed by the processing unit, further cause the system to allow each of the data transmissions to continue when the service application is unavailable.

### Claim 12 (depends on 10)

The system of claim 10, wherein the instructions, when executed by the processing unit, further cause the system to:
store origin data associated with each of the one or more data packets, the origin data defining whether each of the one or more data packets originated from the client application or from the service application.

### Claim 13 (depends on 12)

The system of claim 12, wherein the instructions, when executed by the processing unit, further cause the system to mimic the service application by selecting the data transmissions based upon the origin data associated with each of the one or more data packets.

### Claim 14 (depends on 10)

The system of claim 10, wherein an application is used to automatically add the one or more markers.

### Claim 15 (depends on 10)

The system of claim 10, wherein the data transmissions between the client application and the service application use a Transmission Control Protocol (TCP) protocol.

### Claim 16 (depends on 10)

The system of claim 10, wherein the data transmissions are a serialized stream of bytes.
