IP Library Granted Patent US 12,499,036
Granted Patent B2
US 12,499,036 · App. 18/413,866 · Granted Dec 16, 2025

Service virtualization

Inventors: Saraf Uddin Talukder (New Hyde Park, NY); Jalil Vaidya (Little Falls, NJ)
Assignee: Wells Fargo Bank, N.A.
G06F11/3698G06F9/45508G06F9/547G06F11/3688H04L43/04H04L43/14H04L43/50H04L67/75G06F11/2294G06F11/3414G06F11/3672G06F11/3684H04L43/0805
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,499,036
App. No.
18/413,866
Filed
Jan 16, 2024
Granted
Dec 16, 2025
Kind
B2
Art Unit
2192
USPC
717/135
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 (34)

1 . A method for conducting a testing scenario, the method comprising:

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 as a recording;

storing time interval data associated with each of the one or more data packets, the time interval data defining an amount of time between each subsequent data packet in the data transmissions;

allowing each of the data transmissions to continue when the service application is unavailable; and

mimicking the service application by replaying the data transmissions of the service application by transmitting the one or more data packets at time intervals that correspond to the time interval data associated with each of the one or more data packets.

2 . The method of claim 1 , wherein the one or more data packets associated with each of the data transmissions is recorded without decrypting the one or more data packets.

3 . The method of claim 1 , further comprising selecting the data transmissions based upon whether the data transmissions originated from the client application or whether the data transmissions originated from the service application.

4 . The method of claim 1 , further comprising adding one or more markers to the recording to indicate that timing of a subsequent data transmission from the client application is variable.

5 . The method of claim 4 , wherein upon encountering each of the one or more markers on the recording,

pausing the replaying of the data transmissions; and

upon receiving the subsequent data transmission from the client application, continuing the replaying of the data transmissions.

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

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

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

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

10 . The method of claim 1 , wherein the data transmissions include a transmission of binary serialized data.

11 . 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:

intercept data transmissions between a client application and a service application, wherein each of the data transmissions includes one or more data packets;

record the one or more data packets associated with each of the data transmissions as a recording;

store time interval data associated with each of the one or more data packets, the time interval data defining an amount of time between each subsequent data packet in the data transmissions;

allow each of the data transmissions to continue when the service application is unavailable; and

mimic the service application by replaying the data transmissions of the service application by transmitting the one or more data packets at time intervals that correspond to the time interval data associated with each of the one or more data packets.

12 . The system of claim 11 , wherein the one or more data packets associated with each of the data transmissions is recorded without decrypting the one or more data packets.

13 . The system of claim 11 , wherein the instructions, when executed by the processing unit, further cause the system to select the data transmissions based upon whether the data transmissions originated from the client application or whether the data transmissions originated from the service application.

14 . The system of claim 11 , wherein the instructions, when executed by the processing unit, further cause the system to add one or more markers to the recording to indicate that timing of a subsequent data transmission from the client application is variable.

15 . The system of claim 14 , wherein upon encountering each of the one or more markers on the recording, pausing the replaying of the data transmissions until the subsequent data transmission is received from the client application.

16 . The system of claim 15 , wherein the instructions, when executed by the processing unit, further cause the system to execute one or more scripts that automatically pause and un-pause the replaying of the data transmissions.

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

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

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

20 . The system of claim 11 , wherein the data transmissions include a transmission of binary serialized data.

Assignments (2)
STATEMENT OF CHANGE OF ADDRESS OF ASSIGNEE Recorded Jun 17, 2025
From: WELLS FARGO BANK, N.A.
To: WELLS FARGO BANK, N.A.
Reel/Frame 071644/0971 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2024
From: TALUKDER, SARAF UDDIN; VAIDYA, JALIL
To: WELLS FARGO BANK, N.A.
Reel/Frame 066145/0646 →
Continuity (3)
Continuation 17804418 · May 27, 2022
Continuation 17145785 · Jan 11, 2021
Related Publication 20240152446A1 · May 9, 2024
References Cited (30)
US 8898643B2 · Rode · 2014 [cited by applicant]
US 9043440B2 · Leiba et al. · 2015 [cited by applicant]
US 9268670B1 · Lachwani · 2016 [cited by examiner]
US 10031836B2 · Versteeg et al. · 2018 [cited by applicant]
US 10282282B2 · Shavro et al. · 2019 [cited by applicant]
US 10459753B2 · Raskar · 2019 [cited by applicant]
US 10474563B1 · Rai et al. · 2019 [cited by applicant]
US 10565086B2 · Michelsen · 2020 [cited by applicant]
US 10671515B1 · Sanghvi · 2020 [cited by applicant]
US 10678676B2 · Schmalz, Jr. · 2020 [cited by applicant]
US 20050160095A1 · Dick et al. · 2005 [cited by applicant]
US 20060059253A1 · Goodman · 2006 [cited by examiner]
US 20070106810A1 · Ryman · 2007 [cited by applicant]
US 20090132335A1 · Pein · 2009 [cited by applicant]
US 20140132571A1 · Zeng et al. · 2014 [cited by applicant]
US 20160162475A1 · Bondarenko · 2016 [cited by examiner]
US 20170039041A1 · Bommireddi · 2017 [cited by applicant]
US 20180013692A1 · Park · 2018 [cited by examiner]
US 20190095317A1 · Palanisamy et al. · 2019 [cited by applicant]
US 20190116111A1 · Izard et al. · 2019 [cited by applicant]
US 20190311057A1 · Sung · 2019 [cited by examiner]
US 20200050537A1 · Schmalz, Jr. · 2020 [cited by applicant]
US 20200104511A1 · Stolfo et al. · 2020 [cited by applicant]
US 20200133827A1 · Tkac et al. · 2020 [cited by applicant]
US 20200136933A1 · Raskar · 2020 [cited by applicant]
US 20210311850A1 · Park et al. · 2021 [cited by applicant]
Versteeg et al.; “Enhanced Playback of Automated Service Emulation Models Using Entropy Analysis,” 2016 IEEE/ACM International Workshop on Continuous Software Evolution and Delivery (CSED), Date of Publication: Jan. 201… [cited by applicant]
Yong Pan et al., Research on Dependability of Cloud Computing Systems, 2014 IEEE, [Retrieved on Apr. 12, 2022]. Retrieved from the internet: <URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7107234> 5 Page… [cited by applicant]
Vias Zyrianov et al., Automated Recording and Semantics-Aware Replaying of High-Speed Eye Tracking and Interaction Data to Support Cognitive, 2020, [Retrieved on Aug. 4, 2023]. Retrieved from the internet: <URL: https:/… [cited by applicant]
Dinesh Subhraveti et al., Record and transplay: partial checkpointing for replay debugging across heterogeneous systems, Jun. 7-11, 2011, [Retrieved on Aug. 4, 2023]. Retrieved from the internet: <URL: https://dl.acm.or… [cited by applicant]