# US 12,010,194 B2 · Scalable server-based web scripting with user input

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

- Number: US 12,010,194 B2
- Document ID: US12010194B2
- Status: Granted
- Kind: B2
- Application number: 18/131,008
- Filed: 2023-04-05
- Published: 2023-07-27
- Granted: 2024-06-11
- Earliest claimed: 2020-10-30
- Assignees: Capital One Services, LLC
- Applicants: Capital One Services, LLC
- Inventors: Joshua Edwards; Shabnam Kousha; Daniel E. Miller
- Web page: https://patentgrep.com/patent/US12010194B2

## CPC

- H04L 67/564: Enhancement of application control based on intercepted application data
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F 9/547: {Remote procedure calls [RPC]; Web services}
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 67/1004: Server selection for load balancing
- H04L 67/1023: based on a hash applied to IP addresses or costs
- H04L 67/1031: Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
- H04L 67/141: Setup of application sessions (admission control or resource allocation in data switching networks H04L47/70)
- H04L 67/146: Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
- H04L 67/53: using third party service providers
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- H04L 67/561: Adding application-functional data or data for application control, e.g. adding metadata
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed are techniques and apparatuses that are configured to receive an indication that a web browsing session executing on an enterprise server needs additional information based on a request for additional information being sent to a client device. The request may include an identifier of the web browsing session and an identifier of an enterprise server that initiated the web browsing session. A globally unique identifier related to the web browsing session and an identifier of the enterprise server is stored in a common data store. The web browsing session may be paused when the web browsing session requests additional information from a client device. The client device may respond with the additional information. The system may provide the identifier of the enterprise server to a load balancing component so the identified web browsing session executing on the enterprise server may continue to be used.

## Claims

### Claim 1

A system in an enterprise server environment, comprising:
a plurality of servers;
a data store; and
an intermediary web scripting tracking component coupled to the data store and a first server of the plurality of servers, the intermediary web scripting tracking component to execute on one or more of the plurality of servers to:
receive an indication of initiation of a web browsing session for a client device, wherein the indication includes a web browsing session identifier of the web browsing session and an identifier of the first server;
generate a record in the data store based on the indication of initiation;
store the web browsing session identifier and the identifier of the first server in the record in the data store;
receive an indication of a request for additional information related to the web browsing session sent to the client device, wherein the indication of the request includes the web browsing session identifier and the identifier of the first server; and
store a request identifier for the additional information in the data store in association with the web browsing session identifier.

### Claim 2 (depends on 1)

The system of claim 1, wherein the intermediary web scripting tracking component further operable to:
forward the identifier of the first server to a load balancing component to enable routing of a response to the request to the first server based on the identifier of the first server.

### Claim 3 (depends on 1)

The system of claim 1, wherein the request for the additional information includes a class of the additional information requested, the intermediary web scripting tracking component to store the class of the additional information with the request identifier in the data store.

### Claim 4 (depends on 1)

The system of claim 1, wherein the intermediary web scripting tracking component further operable to:
determine a number of web browsing sessions that are active on the plurality of servers;
compare the number of web browsing sessions that are active on the plurality of servers to a threshold value; and
based on a determination that the number exceeds the threshold value, generating a request for additional web servers.

### Claim 5 (depends on 4)

The system of claim 4, wherein the intermediary web scripting tracking component further operable to:
forward the request for the additional web servers to a load balancing component configured to instantiate additional web sessions for use as available web browsing sessions.

### Claim 6 (depends on 1)

The system of claim 1, wherein the intermediary web scripting tracking component further operable to:
determine when the web browsing session is no longer active;
determine when another web browsing session is activated; and
update the data store by eliminating the web browsing session identifier associated with the web browsing session that is no longer active and populating the record in the data store with another web browsing session identifier of the another web browsing session.

### Claim 7 (depends on 1)

The system of claim 1, wherein the intermediary web scripting tracking component further operable to:
compare the web browsing session identifier included in a call for an application programming interface (API) to each web browsing session identifier of a plurality of web browsing session identifiers included in the data store; and
use the web browsing session identifier included in the call for the API in the data store to locate a globally unique identifier associated with the web browsing session identifier.

### Claim 8

A method, comprising:
receiving an indication of initiation of a web browsing session for a client device, wherein the indication includes a web browsing session identifier of the web browsing session and an identifier of a first server of a plurality of servers;
generating a record in a data store based on the indication of initiation;
storing the web browsing session identifier and the identifier of the first server in the record in the data store;
receiving an indication of a request for additional information related to the web browsing session sent to the client device, wherein the indication of the request includes the web browsing session identifier and the identifier of the first server; and
storing a request identifier for the additional information in the data store in association with the web browsing session identifier.

### Claim 9 (depends on 8)

The method of claim 8, further comprising forwarding the identifier of the first server to a load balancing component to enable routing of a response to the request to the first server based on the identifier of the first server.

### Claim 10 (depends on 8)

The method of claim 8, wherein the request for the additional information includes a class of the additional information, an intermediary web scripting tracking component to store the class of the additional information with the request identifier in the data store.

### Claim 11 (depends on 8)

The method of claim 8, further comprising:
determining a number of web browsing sessions that are active on the plurality of servers;
comparing the number of web browsing sessions that are active on the plurality of servers to a threshold value; and
based on a determination that the number exceeds the threshold value, generating a request for additional web servers.

### Claim 12 (depends on 11)

The method of claim 11, further comprising forwarding the request for the additional web servers to a load balancing component configured to instantiate additional web sessions for use as available web browsing sessions.

### Claim 13 (depends on 8)

The method of claim 8, further comprising:
determining when the web browsing session is no longer active;
determining when another web browsing session is activated; and
update the data store by eliminating the web browsing session identifier associated with the web browsing session that is no longer active and populating the record in the data store with another web browsing session identifier of the another web browsing session.

### Claim 14 (depends on 8)

The method of claim 8, further comprising:
comparing the web browsing session identifier included in a call for an application programming interface (API) to each web browsing session identifier of a plurality of web browsing session identifiers included in the data store; and
using the web browsing session identifier included in the call for the API in the data store to locate a globally unique identifier associated with the web browsing session identifier.

### Claim 15

A non-transitory computer readable medium embodied with programming instructions when executed by a processor that causes the processor to:
receive an indication of initiation of a web browsing session for a client device, wherein the indication includes a web browsing session identifier of the web browsing session and an identifier of a first server of a plurality of servers;
generate a record in a data store based on the indication of initiation;
store the web browsing session identifier and the identifier of the first server in the record in the data store;
receive an indication of a request for additional information related to the web browsing session sent to the client device, wherein the indication of the request includes the web browsing session identifier and the identifier of the first server; and
store a request identifier for the additional information in the data store in association with the web browsing session identifier.

### Claim 16 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the embodied programming instructions when executed by the processor cause the processor to:
forward the identifier of the first server to a load balancing component to enable routing of a response to the request to the first server based on the identifier of the first server.

### Claim 17 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the request for the additional information includes a class of the additional information requested, an intermediary web scripting tracking component to store the class of the additional information with the request identifier in the data store.

### Claim 18 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the embodied programming instructions when executed by the processor cause the processor to:
determine a number of web browsing sessions that are active on the plurality of servers;
compare the number of web browsing sessions that are active on the plurality of servers to a threshold value; and
based on a determination that the number exceeds the threshold value, generating a request for additional web servers.

### Claim 19 (depends on 18)

The non-transitory computer readable medium of claim 18, wherein the embodied programming instructions when executed by the processor cause the processor to:
forward the request for the additional web servers to a load balancing component configured to instantiate additional web sessions for use as available web browsing sessions.

### Claim 20 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the embodied programming instructions when executed by the processor cause the processor to:
determine when the web browsing session is no longer active;
determine when another web browsing session is activated; and
update the data store by eliminating the web browsing session identifier associated with the web browsing session that is no longer active and populating the record in the data store with another web browsing session identifier of the another web browsing session.
